@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(./outfit-latin-500-normal-DKnIMDSk.woff2)format("woff2"),url(./outfit-latin-500-normal-ClnHRwRh.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(./outfit-latin-600-normal-B7SfZ07L.woff2)format("woff2"),url(./outfit-latin-600-normal-BEfTtDA7.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(./outfit-latin-700-normal-Cu9v6i1X.woff2)format("woff2"),url(./outfit-latin-700-normal-D4itBLBr.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(./inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(./inter-latin-700-normal-BLAVimhd.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}:root{--font-head:"Outfit", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--bg0:#070b1f;--bg1:#0b1230;--surface:#111a3b;--surface2:#17234f;--surface3:#1e2d63;--line:#a0b4ff21;--line-strong:#a0b4ff42;--ink:#f2f5ff;--muted:#9fadd9;--faint:#6d7bb0;--accent:#ffb02e;--accent-2:#ff7a59;--accent-ink:#1b1200;--accent-edge:color-mix(in srgb, var(--accent) 52%, #000);--good:#3ddc97;--bad:#ff6b81;--r-lg:24px;--r-md:16px;--r-sm:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1100px 620px at 85% -8%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 62%), radial-gradient(900px 600px at -10% 20%, #5064ff24, transparent 60%), linear-gradient(180deg, var(--bg1), var(--bg0));-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;overflow-x:hidden}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.02em;margin:0;line-height:1.08}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 80%, #fff);outline-offset:2px;border-radius:10px}.eyebrow{font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:inline-block}.btn{font:600 14px/1 var(--font-body);color:var(--ink);background:var(--surface3);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;transition:transform .1s,box-shadow .1s,filter .15s,background .15s;display:inline-flex;box-shadow:0 3px #0006,inset 0 1px #ffffff1a}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #0006,inset 0 1px #ffffff1a}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{box-shadow:0 3px 0 #00000040, inset 0 0 0 1px var(--line);background:#ffffff0f}.btn-ghost.is-on{background:color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:0 3px 0 #00000040, inset 0 0 0 1px var(--accent);color:var(--accent)}.btn-icon{padding:11px 12px;position:relative}.btn-icon sup{color:var(--accent);font-size:9px;font-weight:800;position:absolute;top:5px;right:4px}.btn-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 100%, #fff 12%), var(--accent));color:var(--accent-ink);box-shadow:0 4px 0 var(--accent-edge), 0 12px 26px color-mix(in srgb, var(--accent) 30%, transparent)}.btn-primary:active:not(:disabled){box-shadow:0 0 0 var(--accent-edge), 0 6px 16px color-mix(in srgb, var(--accent) 25%, transparent)}.btn-run{color:#032a1c;background:linear-gradient(#52e69f,#1fbf7a);padding:13px 22px;font-size:16px;box-shadow:0 4px #0f7a4c,0 12px 28px #1fbf7a59}.btn-run:active:not(:disabled){box-shadow:0 0 #0f7a4c,0 6px 14px #1fbf7a4d}.btn-stop{color:#3a0510;background:linear-gradient(#ff8294,#ee4d68);padding:13px 22px;font-size:16px;box-shadow:0 4px #a8273f,0 12px 28px #ee4d684d}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.bg{padding:6px 0 40px}.bg-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin:4px 0 22px;display:flex}.bg-title h1{margin:10px 0 8px;font-size:clamp(28px,3.6vw,44px);font-weight:700}.bg-title p{color:var(--muted);max-width:62ch;font-size:16px;line-height:1.5}.bg-dots{gap:8px;margin:0;padding:0;list-style:none;display:flex}.bg-dots li{width:30px;height:30px;font:700 12px var(--font-head);color:var(--faint);box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffff0d;border-radius:50%;place-items:center;display:grid}.bg-dots li.is-done{background:color-mix(in srgb, var(--good) 22%, transparent);color:var(--good);box-shadow:inset 0 0 0 1.5px var(--good)}.bg-dots li.is-current{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 28%, transparent);transform:scale(1.1)}.bg-grid{grid-template-columns:minmax(300px,.9fr) minmax(0,1.25fr);align-items:start;gap:20px;display:grid}.bg-stage,.bg-editor{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(#ffffff0b,#ffffff04);box-shadow:0 24px 60px #00000059,inset 0 1px #ffffff0f}.bg-stage{flex-direction:column;gap:12px;padding:14px;display:flex;position:sticky;top:76px}.bg-canvas-wrap{aspect-ratio:1;width:100%;max-height:66vh;box-shadow:inset 0 0 0 1px var(--line-strong);background:#0a0f26;border-radius:18px;margin-inline:auto;position:relative;overflow:hidden}.bg-canvas{touch-action:none;width:100%;height:100%;display:block}.bg-ghost-tag{font:600 11px var(--font-body);color:#e6ebff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px var(--line-strong);background:#080c24b8;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;display:inline-flex;position:absolute;top:12px;left:12px}.bg-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bg-flex{flex:1}.bg-msg{border-radius:14px;padding:12px 14px;font-size:14px;font-weight:500;line-height:1.45;animation:.25s ease-out pop}.bg-msg.is-bad{background:color-mix(in srgb, var(--bad) 16%, transparent);color:#ffd0d7;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bad) 50%, transparent)}.bg-msg.is-info{background:color-mix(in srgb, var(--accent) 14%, transparent);color:#ffe7b8;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent)}.bg-hint{color:#d9e0ff;background:#788cff1f;border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.45;animation:.25s ease-out pop;display:flex;box-shadow:inset 0 0 0 1px #96a5ff59}.bg-hint svg{color:var(--accent);flex:none;margin-top:2px}.bg-code{box-shadow:inset 0 0 0 1px var(--line);font:500 13px/1.7 var(--font-mono);color:#cfe0ff;white-space:pre;background:#060a1c;border-radius:14px;max-height:240px;margin:0;padding:14px 16px;overflow:auto}.bg-editor{flex-direction:column;display:flex;overflow:hidden}.bg-editor-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.bg-count{font:700 14px var(--font-head);color:var(--ink);background:#ffffff12;border-radius:999px;padding:6px 12px}.bg-count small{font:500 11px var(--font-body);color:var(--muted)}.bg-count.is-over{color:#ffd0d7;background:color-mix(in srgb, var(--bad) 28%, transparent);box-shadow:inset 0 0 0 1px var(--bad)}.bg-blockly{width:100%;height:clamp(440px,70vh,780px)}.bg-win{text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 50px #00000080, inset 0 0 0 1px var(--line-strong);background:linear-gradient(#0e1436e6,#080c24f5);border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:16px 18px;animation:.45s cubic-bezier(.2,1.2,.4,1) rise;display:flex;position:absolute;inset:auto 12px 12px}.bg-win strong{font:700 24px var(--font-head)}.bg-win-sub{color:var(--muted);font-size:13px}.bg-win-stars{gap:6px;font-size:38px;line-height:1;display:flex}.bg-win-stars span{color:#ffffff29;transform:scale(.6)}.bg-win-stars span.on{color:#ffcf33;text-shadow:0 0 22px #ffcf33b3;animation:.5s cubic-bezier(.2,1.6,.4,1) both starpop}.bg-reflect{text-align:left;color:#d9e0ff;align-items:flex-start;gap:8px;margin-top:4px;font-size:13px;line-height:1.45;display:flex}.bg-reflect svg{color:var(--accent);flex:none;margin-top:2px}.bg-win-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:none}}@keyframes starpop{0%{transform:scale(0)rotate(-40deg)}to{transform:scale(1)rotate(0)}}.bg-blockly .blocklyText,.bg-blockly .blocklyHtmlInput{font-weight:600;font-family:var(--font-head)!important}.bg-blockly .blocklyTreeLabel{font-family:var(--font-head);font-size:14px;font-weight:600}.bg-blockly .blocklyToolboxDiv{border-right:1px solid var(--line)}.bg-blockly .blocklyFlyoutBackground{fill-opacity:.97}.bg-blockly .blocklyScrollbarHandle{fill:#7686d6}.bg-blockly .blocklyHighlightedConnectionPath{stroke:#fff}.blocklyWidgetDiv .blocklyHtmlInput,.blocklyDropDownDiv{font-family:var(--font-head)}.blocklyDropDownDiv .blocklyMenuItem{font-family:var(--font-head);font-weight:600}@media (width<=980px){.bg-grid{grid-template-columns:1fr}.bg-stage{position:static}.bg-canvas-wrap{max-width:520px;max-height:52vh}.bg-blockly{height:62vh}}@media (width<=560px){.bg-bar .btn{padding:10px 12px}}#root{flex-direction:column;min-height:100vh;display:flex;position:relative}.backdrop{z-index:0;pointer-events:none;opacity:.9;width:100%;height:100%;position:fixed;inset:0}.topbar,.shell,.foot{z-index:1;position:relative}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:linear-gradient(#070b1fdb,#070b1f80);justify-content:space-between;align-items:center;gap:12px;padding:12px clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.wordmark{color:var(--ink);font:700 22px var(--font-head);letter-spacing:-.03em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark svg{fill:#cfd8ff;width:28px;height:28px}.wordmark svg .wm-acc{fill:var(--accent)}.wordmark b{color:var(--accent);font-weight:700}.top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.chip{cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);font:600 13px var(--font-body);background:#ffffff12;border:0;border-radius:999px;align-items:center;gap:8px;padding:4px 14px 4px 4px;display:inline-flex}.chip-avatar{background:var(--surface3);border-radius:50%;place-items:center;width:30px;height:30px;display:grid;overflow:hidden}.shell{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:clamp(20px,3.4vw,44px) clamp(16px,4vw,40px) 30px;animation:.45s ease-out fadeup}.foot{color:var(--faint);letter-spacing:.04em;border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:18px clamp(16px,4vw,40px) 26px;font-size:12px;display:flex}.loading{min-height:50vh;color:var(--muted);font:600 16px var(--font-head);place-items:center;display:grid}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.shell h1 em{background:linear-gradient(100deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.btn-lg{border-radius:16px;padding:16px 24px;font-size:16px}.input{width:100%;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong);font:500 16px var(--font-body);background:#ffffff0f;border:0;border-radius:14px;padding:13px 14px}.input:focus{box-shadow:inset 0 0 0 2px var(--accent);outline:none}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%;background-repeat:no-repeat;background-size:6px 6px;padding-right:34px}select.input option{background:#111a3b}.fine{color:var(--faint);font-size:12px;line-height:1.5}.robot{display:block;overflow:visible}.robot-eyes{transform-origin:60px 51px;animation:5s infinite blink}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.entry{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(24px,5vw,64px);min-height:calc(100vh - 190px);display:grid}.entry-copy h1{margin:14px 0 18px;font-size:clamp(44px,7.4vw,92px);font-weight:700;line-height:.98}.entry-copy>p{color:var(--muted);max-width:46ch;font-size:clamp(16px,1.6vw,19px);line-height:1.55}.world-card{border-radius:var(--r-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 20%, transparent), #ffffff08);max-width:420px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 36%, transparent), 0 24px 60px #0000004d;flex-direction:column;gap:4px;margin-top:30px;padding:20px 22px;animation:.35s ease-out pop;display:flex;position:relative;overflow:hidden}.world-card strong{font:700 28px var(--font-head)}.world-card small{color:var(--muted);font-size:14px}.world-robot{animation:3.2s ease-in-out infinite bob;position:absolute;bottom:-6px;right:14px}@keyframes bob{50%{transform:translateY(-6px)}}.entry-form{box-shadow:0 30px 80px #0006, inset 0 1px 0 #ffffff14, inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#ffffff0f,#ffffff05);border-radius:28px;flex-direction:column;gap:12px;padding:clamp(20px,3vw,32px);display:flex}.entry-form .eyebrow{margin-top:6px}.grade-pick{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.grade-pick button{cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffff0d;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:12px 4px 10px;transition:transform .12s,background .15s;display:flex}.grade-pick button b{font:700 24px var(--font-head);color:var(--c)}.grade-pick button small{color:var(--muted);text-align:center;font-size:9.5px;line-height:1.1}.grade-pick button:hover{transform:translateY(-2px)}.grade-pick button.on{background:color-mix(in srgb, var(--c) 22%, transparent);box-shadow:inset 0 0 0 2px var(--c), 0 10px 24px color-mix(in srgb, var(--c) 28%, transparent)}.avatar-pick{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.avatar-pick button{cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line);background:#ffffff0d;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;transition:transform .12s;display:flex}.avatar-pick button small{color:var(--muted);font-size:11px;font-weight:600}.avatar-pick button:hover{transform:translateY(-2px)}.avatar-pick button.on{background:color-mix(in srgb, var(--accent) 18%, transparent);box-shadow:inset 0 0 0 2px var(--accent)}.avatar-pick button.on small{color:var(--accent)}.home{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(24px,5vw,64px);min-height:calc(100vh - 190px);display:grid}.home-copy h1{margin:14px 0 12px;font-size:clamp(52px,9vw,112px);font-weight:700;line-height:.95}.home-copy>p{color:var(--muted);font-size:20px}.resume{cursor:pointer;text-align:left;width:100%;max-width:480px;color:var(--accent-ink);background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 6px 0 color-mix(in srgb, var(--accent) 45%, #000), 0 24px 50px color-mix(in srgb, var(--accent) 30%, transparent);border:0;border-radius:22px;align-items:center;gap:16px;margin-top:28px;padding:16px 20px 16px 16px;transition:transform .12s,box-shadow .12s;display:flex}.resume:hover{transform:translateY(-2px)}.resume:active{box-shadow:0 2px 0 color-mix(in srgb, var(--accent) 45%, #000);transform:translateY(4px)}.resume>span:nth-child(2){flex-direction:column;flex:1;display:flex}.resume small{font:700 11px var(--font-body);letter-spacing:.12em;text-transform:uppercase;opacity:.7}.resume b{font:700 22px/1.15 var(--font-head)}.resume i{opacity:.75;font-size:13px;font-style:normal}.resume-play{background:#0000002e;border-radius:16px;place-items:center;width:52px;height:52px;display:grid}.resume-done{cursor:default;color:var(--ink);background:color-mix(in srgb, var(--good) 20%, transparent);box-shadow:inset 0 0 0 1px var(--good)}.home-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.home-side{flex-direction:column;align-items:center;gap:28px;display:flex}.home-robot{aspect-ratio:1;background:radial-gradient(circle, color-mix(in srgb, var(--accent) 24%, transparent), transparent 68%);border-radius:50%;place-items:center;width:min(300px,62vw);animation:4s ease-in-out infinite bob;display:grid;position:relative}.home-robot .robot{width:78%;height:78%}.metrics{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:440px;display:grid}.metric{box-shadow:inset 0 0 0 1px var(--line);background:#ffffff0d;border-radius:18px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.metric small{font:700 10px var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.metric b{font:700 30px var(--font-head)}.metric b i{color:var(--faint);margin-left:2px;font-size:14px;font-style:normal}.bar{background:#ffffff1a;border-radius:99px;height:6px;overflow:hidden}.bar span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .6s;display:block}.map-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px;display:flex}.map-head h1{margin:12px 0 10px;font-size:clamp(36px,5.6vw,68px);font-weight:700}.map-head p{color:var(--muted);font-size:17px}.ring{align-content:center;place-items:center;width:108px;height:108px;display:grid;position:relative}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring-bg{stroke:#ffffff1a}.ring-fg{stroke:var(--accent);stroke-linecap:round;filter:drop-shadow(0 0 6px var(--accent));transition:stroke-dasharray .8s}.ring b{font:700 30px/1 var(--font-head);position:relative}.ring small{color:var(--muted);font-size:11px;position:relative}.modules{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;display:grid}.module{box-shadow:inset 0 0 0 1px var(--line), 0 24px 60px #00000047;animation:.5s ease-out both fadeup;animation-delay:calc(var(--i) * 90ms);background:linear-gradient(#ffffff0f,#ffffff05);border-radius:28px;padding:22px 22px 14px;position:relative;overflow:hidden}.module:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);filter:blur(10px);pointer-events:none;border-radius:50%;width:280px;height:280px;position:absolute;inset:-40% -30% auto auto}.module-top{justify-content:space-between;align-items:center;min-height:22px;display:flex}.badge{color:#052a1b;background:var(--good);border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.module h2{margin:8px 0 6px;font-size:26px;font-weight:700;position:relative}.module>p{color:var(--muted);font-size:14px;line-height:1.5;position:relative}.trail{flex-direction:column;gap:6px;margin:22px 0 6px;padding:0 0 0 40px;list-style:none;display:flex;position:relative}.trail:before{content:"";background:repeating-linear-gradient(180deg, var(--line-strong) 0 6px, transparent 6px 12px);border-radius:2px;width:3px;display:none;position:absolute;top:10px;bottom:10px;left:calc(50% - 130px)}.trail li{transform:translateX(calc(var(--x) * 1px));align-items:center;gap:14px;display:flex}.node{cursor:pointer;width:56px;height:56px;font:700 20px var(--font-head);color:var(--ink);background:radial-gradient(circle at 32% 25%, var(--surface3), var(--surface));box-shadow:0 5px 0 #00000073, inset 0 0 0 2px var(--line-strong);border:0;border-radius:50%;flex:none;place-items:center;transition:transform .12s;display:grid;position:relative}.node:hover:not(:disabled){transform:translateY(-2px)scale(1.05)}.node:active:not(:disabled){box-shadow:0 1px 0 #00000073, inset 0 0 0 2px var(--line-strong);transform:translateY(3px)}.trail li.is-done .node{color:#052a1b;background:radial-gradient(circle at 32% 25%, #7cf0bb, var(--good));box-shadow:0 5px #17805a,0 0 22px #3ddc9759}.trail li.is-current .node{color:var(--accent-ink);background:radial-gradient(circle at 32% 25%, #fff3c9, var(--accent));box-shadow:0 5px 0 color-mix(in srgb, var(--accent) 45%, #000), 0 0 0 6px color-mix(in srgb, var(--accent) 24%, transparent);animation:1.8s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 5px 0 color-mix(in srgb, var(--accent) 45%, #000), 0 0 0 12px color-mix(in srgb, var(--accent) 6%, transparent)}}.trail li.is-locked .node{cursor:not-allowed;opacity:.5}.node-label{flex-direction:column;min-width:0;display:flex}.node-label b{font:600 15px var(--font-head)}.node-label small{color:var(--muted);font-size:12px}.trail li.is-done .node-label small{color:#ffcf33;letter-spacing:2px}.portals{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:22px;display:grid}.portal{cursor:pointer;text-align:left;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);background:#ffffff0d;border:0;border-radius:22px;align-items:center;gap:14px;padding:16px 18px;transition:transform .12s,background .15s;display:flex}.portal:hover{background:color-mix(in srgb, var(--accent) 12%, #ffffff0a);transform:translateY(-3px)}.portal>span:nth-child(2){flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.portal small{font:700 10px var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}.portal b{font:700 18px var(--font-head)}.portal i{color:var(--muted);font-size:13px;font-style:normal}.portal-ico{width:46px;height:46px;color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:14px;place-items:center;display:grid}.map-note{color:var(--muted);justify-content:center;align-items:center;gap:8px;margin-top:26px;font-size:14px;display:flex}.map-note svg{color:var(--accent)}.quiz{max-width:820px;margin:0 auto}.quiz-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.count-pill{font:700 14px var(--font-head);background:#ffffff14;border-radius:999px;padding:7px 14px}.quiz-progress{background:#ffffff1a;border-radius:99px;height:6px;margin:18px 0 24px;overflow:hidden}.quiz-progress i{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:inherit;height:100%;transition:width .4s;display:block}.quiz-card{box-shadow:inset 0 0 0 1px var(--line), 0 30px 70px #00000059;background:linear-gradient(#ffffff0f,#ffffff05);border-radius:28px;flex-direction:column;gap:14px;padding:clamp(20px,4vw,36px);animation:.3s ease-out pop;display:flex}.quiz-card h1{font-size:clamp(24px,3.4vw,36px);font-weight:600;line-height:1.2}.quiz-intro{color:var(--muted);background:#ffffff0d;border-radius:14px;padding:12px 14px;font-size:15px}.cl-grid{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:start;gap:20px;display:grid}.cl-board{min-height:320px;position:static!important}.cl-aside{flex-direction:column;gap:14px;display:flex}.cl-options{gap:10px;display:grid}.cl-opt{text-align:left;cursor:pointer;width:100%;color:var(--ink);font:500 15px/1.35 var(--font-body);box-shadow:0 3px 0 #0000004d, inset 0 0 0 1.5px var(--line);background:#ffffff0f;border:0;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;transition:transform .1s,background .15s,box-shadow .1s;display:flex}.cl-opt>span:first-child{width:30px;height:30px;font:700 13px var(--font-head);background:#ffffff17;border-radius:10px;flex:none;place-items:center;display:grid}.cl-opt>svg{opacity:.4;flex:none;margin-left:auto}.cl-opt:hover:not(:disabled){background:#ffffff1a;transform:translateY(-2px)}.cl-opt:active:not(:disabled){box-shadow:0 0 0 #0000004d, inset 0 0 0 1.5px var(--line);transform:translateY(2px)}.cl-opt.good{background:color-mix(in srgb, var(--good) 22%, transparent);box-shadow:0 3px 0 #17805a, inset 0 0 0 2px var(--good)}.cl-opt.bad{background:color-mix(in srgb, var(--bad) 18%, transparent);box-shadow:0 3px 0 #a8273f, inset 0 0 0 2px var(--bad);animation:.35s shake}.cl-opt:disabled{cursor:default}@keyframes shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.cl-options-mini{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin-top:6px}.cl-idea{box-shadow:inset 0 0 0 1px var(--line);background:#ffffff0d;border-radius:20px;flex-direction:column;gap:8px;padding:20px;display:flex}.cl-idea b{font:700 24px var(--font-head)}.cl-idea p{color:var(--muted);font-size:14px}.cl-orb{vertical-align:middle;border-radius:50%;width:36px;height:36px;display:inline-block;box-shadow:inset -6px -8px 12px #00000040,inset 5px 5px 10px #fff6,0 6px 14px #00000059}.cl-opt .cl-orb{width:28px;height:28px}.cl-sort-list{flex-direction:column;gap:10px;display:flex}.cl-sort{cursor:grab;text-align:left;color:var(--ink);font:600 16px var(--font-body);background:linear-gradient(180deg, var(--surface3), var(--surface2));border:0;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 4px #0006,inset 0 1px #ffffff1a}.cl-sort b{flex:1;font-weight:600}.cl-num{width:28px;height:28px;font:700 13px var(--font-head);background:var(--accent);color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;display:grid}.cl-emoji{font-size:30px;line-height:1}.cl-grip{opacity:.4}.cl-pattern,.cl-binary,.cl-sortdemo,.cl-concept{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:10px 0;display:flex}.cl-chips{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.cl-chips>span{min-width:56px;height:56px;font:700 22px var(--font-head);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:#ffffff14;border-radius:16px;place-items:center;padding:0 10px;animation:.3s ease-out both pop;display:grid}.cl-chips .cl-missing{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:inset 0 0 0 2px var(--accent);animation:1.4s infinite pulse2}@keyframes pulse2{50%{transform:scale(1.08)}}.cl-switches{gap:12px;display:flex}.cl-switch{cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--muted);background:#ffffff0d;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:10px 8px;display:flex}.cl-switch span{background:#0a0f26;border-radius:99px;width:38px;height:64px;position:relative;box-shadow:inset 0 3px 8px #0009}.cl-switch span:after{content:"";background:#5b6aa8;border-radius:50%;width:30px;height:30px;transition:all .18s;position:absolute;bottom:4px;left:4px}.cl-switch.on span:after{background:var(--accent);box-shadow:0 0 16px var(--accent);bottom:30px}.cl-switch.on{color:var(--accent)}.cl-switch small{font:700 14px var(--font-head)}.cl-out{flex-direction:column;align-items:center;display:flex}.cl-out small{font:700 10px var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.cl-out b{font:700 54px/1 var(--font-head);color:var(--accent)}.cl-bars{align-items:flex-end;gap:8px;height:150px;display:flex}.cl-bars span{width:38px;font:700 14px var(--font-head);color:var(--accent-ink);background:linear-gradient(180deg, var(--accent), var(--accent-2));border-radius:10px 10px 4px 4px;place-items:start center;padding-top:6px;transition:height .3s;display:grid}.cl-concept .bg-code{text-align:left;align-self:stretch}.cl-concept .bg-code i{color:var(--faint);margin-right:14px;font-style:normal}.cl-chip{font:700 12px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;padding:6px 14px}.cl-done{text-align:center;max-width:520px;box-shadow:0 20px 50px #00000080, inset 0 0 0 1px var(--line-strong);background:linear-gradient(#0e1436e6,#080c24f5);border-radius:24px;flex-direction:column;align-items:center;gap:8px;margin:22px auto 0;padding:22px;animation:.45s cubic-bezier(.2,1.2,.4,1) rise;display:flex}.cl-done strong{font:700 26px var(--font-head)}.scrim{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040614b8;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.dialog{width:min(460px,100%);max-height:92vh;box-shadow:0 40px 100px #0009, inset 0 0 0 1px var(--line-strong);background:linear-gradient(#17234f,#0f1738);border-radius:28px;flex-direction:column;gap:12px;padding:28px;animation:.35s cubic-bezier(.2,1.2,.4,1) rise;display:flex;position:relative;overflow:auto}.dialog-wide{width:min(560px,100%)}.dialog h2{font-size:30px;font-weight:700}.dialog p{color:var(--muted);font-size:15px;line-height:1.5}.close-dialog{position:absolute;top:14px;right:14px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.dialog-actions.vertical{flex-direction:column;align-items:stretch}.pin-form{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.pin-form .input{flex:1;min-width:140px}.teacher-grid{grid-template-columns:1fr 1.4fr;gap:12px;margin-top:6px;display:grid}.teacher-grid label{font:600 12px var(--font-body);color:var(--muted);flex-direction:column;gap:6px;display:flex}.teacher-summary{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;margin-top:6px;padding-top:14px;font-size:13px;display:flex}.toast{z-index:80;opacity:0;pointer-events:none;font:600 14px var(--font-body);box-shadow:0 16px 40px #00000080, inset 0 0 0 1px var(--line-strong);text-align:center;background:#1e2d63;border-radius:999px;max-width:calc(100vw - 32px);padding:12px 18px;transition:all .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,24px)}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=900px){.entry,.home,.cl-grid{grid-template-columns:1fr;min-height:0}.home-side{order:-1}.home-robot{width:180px}.teacher-grid{grid-template-columns:1fr}.topbar .chip span:last-child{display:none}}@media (width<=520px){.grade-pick{grid-template-columns:repeat(3,1fr)}.topbar .btn:not(.btn-icon){padding:10px 12px}.trail li{transform:none}}.panel{flex-direction:column;gap:18px;padding:28px 0 56px;display:flex}.panel-top{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.panel h1{margin:0;font-size:clamp(28px,5vw,44px)}.panel h1 em{color:var(--accent);font-style:normal}.panel-login{background:#ffffff0a;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;align-items:flex-start;gap:14px;padding:24px;display:flex}.panel-tools{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.panel-tools label{font:600 12px var(--font-body);color:var(--muted);flex-direction:column;gap:6px;display:flex}.panel-table{background:#ffffff08;border:1px solid #ffffff1a;border-radius:16px;overflow-x:auto}.panel-table table{border-collapse:collapse;width:100%;min-width:640px;font-size:14px}.panel-table th{text-align:left;font:600 11px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:12px 14px}.panel-table td{vertical-align:middle;white-space:nowrap;border-top:1px solid #ffffff12;padding:12px 14px}.panel-table td small{color:var(--faint);font-size:12px;display:block}.panel-table td .bar{vertical-align:middle;width:90px;margin-right:10px;display:inline-block}.panel-empty{color:var(--muted)}.panel-error{color:#ff9b9b}@media (width<=640px){.panel{padding-top:18px}}
