:root{font:14px/1.5 Segoe UI,Arial,sans-serif;color:#213249;background:#f4f7fb;--blue:#1476d4;--line:#e3e9f1;--muted:#8391a4}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #78b9ff;outline-offset:4px}button{border:0}button:disabled{opacity:.5}a{color:inherit}button:hover{filter:brightness(.98)}[hidden]{display:none!important}.app-header{height:70px;display:flex;align-items:center;gap:22px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{font-size:27px;font-weight:750;letter-spacing:-1px;text-decoration:none;display:flex;gap:4px;align-items:center}.brand span{height:6px;width:6px;border-radius:50%;background:var(--blue);margin-top:13px}.header-divider{width:1px;height:22px;background:var(--line)}.workspace-name{font-size:13px;color:#687a90}.demo-badge{font-size:9px;font-weight:700;letter-spacing:1.4px;border:1px solid #cfdfef;color:#6c90b6;border-radius:5px;padding:3px 7px}.kit-link{margin-left:auto;font-size:11px;text-decoration:none;color:#91a0b2}.avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#eef3f9;color:#6783a2;font-size:12px}.workspace{display:flex;height:calc(100dvh - 70px);min-height:600px;overflow:hidden}.stage{position:relative;flex:1;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#fff 6%,#f4f7fc 65%,#eaf0f8)}.stage:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#a8bbd0 .7px,transparent .7px);background-size:28px 28px;opacity:.21;pointer-events:none}.stage-heading{position:absolute;left:38px;top:29px;z-index:2;pointer-events:none}.eyebrow{color:#889ab0;font-size:9px;font-weight:650;letter-spacing:1.9px}h1{font-size:29px;letter-spacing:-.8px;line-height:1.2;margin:8px 0 9px;font-weight:600}.stage-heading p{margin:0;color:#8b9bad;font-size:12px}.practice-progress{position:absolute;right:34px;top:39px;z-index:2;display:flex;gap:12px;align-items:center;font-size:11px;color:#8999ae}.progress-bars{display:flex;gap:4px}.progress-bars i{width:23px;height:5px;background:#dce5ef;border-radius:3px}.progress-bars i.done{background:#23ac79}#focus-scene,#map-labels,#layer-labels{position:absolute;inset:122px 0 66px}#focus-scene{touch-action:none}#focus-scene canvas{display:block;width:100%;height:100%}#map-labels,#layer-labels{pointer-events:none}.map-caption{position:absolute;transform:translate(-50%);white-space:nowrap;display:flex;flex-direction:column;text-align:center;align-items:center;gap:6px;padding:13px 19px;min-width:185px;transition:opacity .35s,box-shadow .3s;background:none}.map-caption small{font-size:8px;letter-spacing:1.25px;color:#92a1b3}.map-caption b{font-size:14px;font-weight:550;color:#69809a}.map-caption b span{color:#20a877;margin-left:8px}.map-caption .caption-note{font-size:10px;color:#99a8bb}.map-caption.current{border:1px solid #c0d9f4;background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;box-shadow:0 8px 27px #1476d414;pointer-events:auto;padding:13px 24px}.map-caption.current b{font-size:17px;color:#236ab2}.map-caption.current b span{color:#1476d4}.map-caption.current small{color:#75a2d0}.map-caption.next{opacity:.7}.stage-footer{position:absolute;bottom:23px;left:34px;right:29px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#96a4b7;font-size:11px}#map-legend{display:flex;align-items:center;gap:9px}#map-legend i{width:6px;height:6px;background:#1476d4;border-radius:50%}#gesture-hint{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;font-size:11px;color:#a1aebd;pointer-events:none}.icon-button{width:33px;height:33px;border:1px solid #dce5ef;border-radius:9px;background:#ffffff9c;font-size:19px;color:#7890ad}.back-button{padding:9px 16px;border:1px solid #d7e4f2;border-radius:9px;background:#fff;color:#4c789f;font-size:12px;box-shadow:0 4px 15px #52719408}.layer-label{position:absolute;transform:translateY(-50%);pointer-events:auto;display:flex;align-items:center;gap:11px;text-align:left;min-width:210px;padding:12px 15px 12px 11px;background:#ffffffed;border:1px solid #dfe7f1;border-radius:12px;box-shadow:0 5px 19px #41689409;transition:border-color .2s,background .2s,box-shadow .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.layer-label:before{content:"";position:absolute;right:100%;width:40px;height:1px;background:linear-gradient(90deg,#a9c6e54d,#becfe1);pointer-events:none}.layer-label:hover,.layer-label[aria-pressed=true]{border-color:var(--layer-color);background:#fff;box-shadow:0 6px 23px #35689d14}.layer-label .layer-number{height:32px;width:32px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--layer-color) 19%,white);background:color-mix(in srgb,var(--layer-color) 6%,white);color:var(--layer-color);border-radius:9px;font-size:11px;font-weight:650}.layer-label small{display:block;font-size:8px;letter-spacing:1.1px;color:#8c9daf;margin-bottom:3px}.layer-label b{font-size:12px;font-weight:550}.layer-label .arrow{margin-left:auto;padding-left:10px;color:#a3b4c5}.inspector{width:0;flex-shrink:0;overflow:hidden;opacity:0;background:#fff;border-left:0 solid var(--line);transition:width .4s cubic-bezier(.2,.7,.2,1),opacity .25s;position:relative;z-index:2}.has-panel .inspector{width:375px;opacity:1;border-left-width:1px}.inspector-content{width:374px;height:100%;overflow:auto;padding:31px 26px 25px}.close{position:absolute;right:17px;top:16px;background:transparent;color:#93a1b3;font-size:25px;z-index:2;width:28px;height:28px;line-height:1}.layer-icon{height:48px;width:48px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--accent) 8%,white);color:var(--accent);font-size:25px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 12%,white);margin-bottom:19px}.panel-kicker{font-size:9px;letter-spacing:1.35px;color:var(--accent);margin-bottom:7px}.inspector h2{font-size:25px;font-weight:600;letter-spacing:-.6px;line-height:1.22;margin:0 0 10px}.panel-intro{color:#8a9aab;font-size:12px;line-height:1.6;margin:0 0 20px}.panel-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:0 0 21px}.panel-tabs button{padding:9px 0 11px;background:none;color:#9aa7b7;font-size:12px;position:relative}.panel-tabs button[aria-selected=true]{color:var(--blue)}.panel-tabs button[aria-selected=true]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--blue);border-radius:2px}.panel-tabs button.mentor-tab[aria-selected=true]{color:#b6571e}.panel-tabs button.mentor-tab[aria-selected=true]:after{background:#bf703f}.game-instruction{font-size:13px;line-height:1.6;margin:0 0 15px;color:#546d85}.game-subtitle{font-size:10px;color:#9aa9ba;margin:0 0 12px}.choice-list{display:grid;gap:8px}.choice{display:flex;align-items:center;gap:10px;text-align:left;width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:12px;color:#61748c}.choice span:first-child{width:17px;height:17px;border:1px solid #d3dfed;border-radius:5px;display:grid;place-items:center;font-size:10px;flex-shrink:0}.choice[aria-pressed=true]{background:#f2f7fe;border-color:#a9c9ee;color:#246dad}.choice[aria-pressed=true] span:first-child{color:#fff;background:#1476d4;border-color:#1476d4}.primary{width:100%;display:flex;justify-content:center;align-items:center;gap:13px;border-radius:10px;padding:12px 17px;background:var(--blue);color:#fff;font-size:12px;box-shadow:0 5px 15px #1476d41c;margin-top:17px}.primary.success{background:#21a874}.feedback{font-size:12px;line-height:1.6;padding:12px 14px;border-radius:10px;background:#fff7ef;color:#a57541;margin-top:13px}.feedback:empty{display:none}.feedback.correct{background:#eff9f3;color:#29815c}.panel-fine{font-size:9px;color:#a3afbe;line-height:1.6;margin-top:19px}.scene-card{border:1px solid #e2eaf4;background:#f7fafd;border-radius:12px;padding:17px;margin:0 0 15px}.scene-card small{font-size:9px;color:#98a7b9}.tiny-record{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #dfe7f2;border-radius:9px;padding:10px 12px;margin-top:10px;box-shadow:0 4px 9px #566d9405;font-size:11px;color:#6a7f97}.tiny-record b{color:#2c435e;font-weight:550}.tiny-record i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#edf5ff;color:#1476d4;font-style:normal;font-size:16px}.chain-slots{display:flex;align-items:center;gap:6px;margin:15px 0 19px}.chain-slot{flex:1;min-width:0;border:1px dashed #cbdced;border-radius:9px;height:63px;display:flex;flex-direction:column;gap:5px;justify-content:center;align-items:center;font-size:11px;color:#a1b2c4;background:#f7faff}.chain-slot.filled{border-style:solid;background:#edf6ff;color:#337bb9}.chain-slot small{font-size:8px;color:#97abc0}.chain-arrow{color:#b2c2d4;font-size:12px}.chain-options{display:flex;gap:6px}.chain-options button{flex:1;background:#fff;border:1px solid #dbe6f1;border-radius:8px;padding:10px 7px;font-size:11px}.text-button{background:none;color:#8ca0b5;font-size:11px;padding:12px 0}.mentor-top{display:flex;gap:10px;align-items:center;font-size:12px;color:#975a31}.mentor-face{width:30px;height:30px;display:grid;place-items:center;border:1px solid #f0d9c8;background:#fff5ec;color:#b56b32;border-radius:10px;font-size:19px}.mentor-message{background:#fff9f3;border:1px solid #f2e5d8;border-radius:3px 13px 13px;padding:15px;margin-top:13px;font-size:12px;line-height:1.75;color:#876a50}.mentor-prompts{display:grid;gap:8px;margin-top:14px}.mentor-prompts button{padding:10px 12px;background:#fff;border:1px solid #eee2d7;border-radius:9px;color:#ac744c;text-align:left;font-size:11px}.return-game{color:#b06d3d;background:#fff8f1;box-shadow:none;border:1px solid #ecdaca}.completion-badge{display:flex;gap:10px;align-items:center;color:#249365;background:#eef9f2;border:1px solid #d7eddf;border-radius:12px;padding:15px;font-size:12px;margin:20px 0}.completion-badge span{font-size:24px}.practice-result{border:1px solid #dbe9e2;border-radius:13px;background:#f4faf7;padding:17px;font-size:12px;color:#648575;margin:20px 0}.practice-result b{display:block;color:#287455;margin-bottom:7px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:6;box-shadow:0 8px 35px #24435b25;background:#fff;border:1px solid #dce8e5;border-radius:12px;padding:12px 20px;color:#418367;font-size:12px}#scene-error{position:absolute;top:50%;left:20%;right:20%;background:#fff;padding:25px;border-radius:13px;z-index:5;text-align:center;color:#8b6171}.focus-mode .practice-progress{right:29px}.focus-mode .map-caption{opacity:0;pointer-events:none}@media(min-width:1700px){.stage-heading{left:50px;top:40px}h1{font-size:34px}.has-panel .inspector{width:410px}.inspector-content{width:409px;padding:38px 32px}.layer-label{min-width:225px}.layer-label b{font-size:13px}}@media(max-width:1100px){.has-panel .inspector{width:330px}.inspector-content{width:329px;padding:29px 22px}.stage-heading{left:26px}h1{font-size:25px}.practice-progress{top:105px;right:25px}.layer-label{min-width:178px;padding:10px;gap:8px}.layer-label b{font-size:10px}.layer-label .layer-number{height:27px;width:27px}.layer-label:before{width:22px}.layer-label .arrow{padding-left:0}.stage-footer{left:23px;right:23px}#gesture-hint{font-size:10px}.map-caption{min-width:140px}.map-caption.current{padding:12px 15px}.map-caption.current b{font-size:14px}.map-caption b{font-size:12px}}@media(max-width:760px){.app-header{height:60px;padding:0 18px;gap:15px}.kit-link,.header-divider{display:none}.avatar{margin-left:auto}.brand{font-size:24px}.workspace-name{font-size:11px}.workspace{height:calc(100dvh - 60px);min-height:620px}.stage-heading{top:22px;left:22px}h1{font-size:24px}.stage-heading p{max-width:280px;font-size:11px}.practice-progress{top:auto;bottom:26px;right:68px;font-size:9px}.progress-bars i{width:14px}#focus-scene,#map-labels,#layer-labels{top:132px;bottom:83px}.inspector{position:absolute;right:0;top:60px;bottom:0;box-shadow:-15px 0 70px #3f5b7620}.has-panel .inspector{width:min(375px,100%)}.inspector-content{width:100%}.has-panel .stage{filter:brightness(.96)}.layer-label{min-width:155px;padding:9px}.layer-label small{font-size:7px}.layer-label b{font-size:10px}.layer-label .layer-number{width:24px;height:26px;font-size:9px}.layer-label .arrow,#gesture-hint,.map-caption.previous,.map-caption.next{display:none}.stage-footer{bottom:21px}.focus-mode .practice-progress{right:65px}.map-caption.current{min-width:200px}}@media(prefers-reduced-motion:reduce){*,*:before{transition:none!important;scroll-behavior:auto!important}}.has-panel.has-3d-game .inspector{width:480px}.has-3d-game .inspector-content{width:479px;padding:30px 28px 22px}.has-3d-game .layer-icon{float:right;width:34px;height:34px;border-radius:10px;margin:21px 2px 0 10px;font-size:19px}.has-3d-game .panel-kicker{padding-top:8px}.has-3d-game .inspector h2{font-size:24px;max-width:350px}.has-3d-game .panel-intro{margin-bottom:13px}.has-3d-game .panel-tabs{margin-bottom:14px}.has-3d-game .game-instruction{margin-bottom:11px;font-size:12px}.has-3d-game .panel-fine{margin-top:12px;font-size:9px}.game3d-board{position:relative;width:100%;height:350px;border:1px solid #e0e9f4;border-radius:16px;background:radial-gradient(ellipse at 50% 39%,#fff,#f1f6fc);overflow:hidden;isolation:isolate}.game3d-board:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#a8bfda .6px,transparent .6px);background-size:20px 20px;opacity:.24;pointer-events:none}.game3d-canvas{position:absolute;inset:0;touch-action:none}.game3d-canvas canvas{display:block;width:100%;height:100%;touch-action:none}.game3d-hud{position:absolute;top:16px;left:17px;right:17px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;font-size:8px;letter-spacing:1.4px;color:#8a9eb5}.game3d-hud b{font-size:11px;letter-spacing:1px;font-weight:550;color:#4385bc;background:#e8f2fe;padding:3px 8px;border-radius:5px}.is-complete .game3d-hud b{color:#318765;background:#e6f4ed}.game3d-hit-labels{position:absolute;inset:0;pointer-events:none}.game3d-block-control{position:absolute;width:55px;height:55px;background:none;border:0;border-radius:11px;transform:translate(-50%,-50%);pointer-events:none}.game3d-block-control:focus-visible{outline:2px solid #328de8;outline-offset:3px;background:#73b8ed0c}.game3d-target{position:absolute;transform:translate(-50%);font-size:8px;font-weight:650;letter-spacing:1.2px;color:#7a9ab9;pointer-events:none;white-space:nowrap}.is-complete .game3d-target{color:#2c986c}.game3d-hint{position:absolute;left:12px;right:12px;bottom:16px;text-align:center;font-size:9px;color:#93a8bf;pointer-events:none}.is-dragging .game3d-hint{color:#438ccb}.game3d-feedback{min-height:43px;padding:12px 2px 0;font-size:12px;line-height:1.65;color:#8094a9}.game3d-feedback.wrong{color:#af7943}.game3d-feedback.placed{color:#468b8b}.game3d-feedback.complete{color:#2c9569}.game3d-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.game3d-actions .text-button{font-size:10px;white-space:nowrap}.game3d-actions .primary{width:auto;margin:0;font-size:11px;padding:10px 12px}.game3d-error{position:absolute;inset:40px 20px;display:grid;place-items:center;font-size:12px;color:#9b7183;background:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1700px){.has-panel.has-3d-game .inspector{width:520px}.has-3d-game .inspector-content{width:519px;padding:35px}.game3d-board{height:380px}}@media(max-width:1100px){.has-panel.has-3d-game .inspector{width:410px}.has-3d-game .inspector-content{width:409px;padding:27px 22px}.game3d-board{height:330px}.has-3d-game .inspector h2{font-size:22px}}@media(max-width:760px){.has-panel.has-3d-game .inspector{width:min(440px,100%)}.has-3d-game .inspector-content{width:100%;padding:28px 20px}.game3d-board{height:340px}.game3d-actions{flex-wrap:wrap}}@media(min-width:761px)and (max-height:760px){.has-3d-game .inspector-content{padding-top:21px}.has-3d-game .panel-intro{font-size:11px;margin-bottom:9px}.has-3d-game .panel-tabs{margin-bottom:11px}.game3d-board{height:320px}.game3d-feedback{font-size:11px}.has-3d-game .panel-fine{margin-top:7px}}.game3d-cube-name{position:absolute;left:50%;top:52px;transform:translate(-50%);white-space:nowrap;font-size:9px;line-height:1.3;color:#7a91aa;font-weight:500;pointer-events:none}@media(min-width:761px)and (max-height:820px){.game3d-board{height:320px}.has-3d-game .inspector-content{padding-top:24px}.has-3d-game .panel-fine{margin-top:7px}}.game3d-cube-name{top:64px}
