.player[data-v-d9df7683]{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.toolbar[data-v-d9df7683]{background:#fff;border-bottom:1px solid #d8dee8;justify-content:space-between;align-items:center;gap:20px;padding:14px 18px;display:flex}.toolbar>div[data-v-d9df7683]:first-child{min-width:0}.toolbar strong[data-v-d9df7683],.toolbar span[data-v-d9df7683]{display:block}.toolbar strong[data-v-d9df7683]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toolbar span[data-v-d9df7683]{color:#667085;margin-top:2px;font-size:13px}.controls[data-v-d9df7683]{flex:0 auto;align-items:center;gap:10px;min-width:0;display:flex}.course-mode-button[data-v-d9df7683]{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;flex:0 auto;align-items:center;gap:8px;max-width:158px;height:38px;padding:0 11px;font-size:13px;font-weight:800;transition:border-color .16s,background-color .16s,color .16s,box-shadow .16s;display:inline-flex}.course-mode-button[data-v-d9df7683]:hover,.course-mode-button.active[data-v-d9df7683]{color:#0f172a;background:#eef2f7;border-color:#94a3b8;box-shadow:0 8px 20px #0f172a1a}.course-mode-button svg[data-v-d9df7683]{flex:none;width:17px;height:17px}.course-mode-button span[data-v-d9df7683]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.playback-button[data-v-d9df7683]{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:999px;place-items:center;width:40px;height:40px;display:grid}.playback-button svg[data-v-d9df7683]{width:20px;height:20px;display:block}.playback-button .play-icon[data-v-d9df7683]{transform:translate(1px)}.export-menu[data-v-d9df7683]{position:relative}.export-button[data-v-d9df7683]{color:#344054;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 12px;font-size:13px;font-weight:800;transition:border-color .16s,background-color .16s,color .16s,box-shadow .16s;display:inline-flex}.export-button[data-v-d9df7683]:hover,.export-button.active[data-v-d9df7683]{color:#0f766e;background:#ecfdf5;border-color:#5eead4;box-shadow:0 8px 20px #0f766e1f}.export-button svg[data-v-d9df7683]{width:17px;height:17px}.export-panel[data-v-d9df7683]{z-index:20;background:#fff;border:1px solid #d8dee8;border-radius:12px;width:180px;display:grid;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 45px #0f172a2e}.export-panel a[data-v-d9df7683]{color:#1f2937;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.export-panel a+a[data-v-d9df7683]{border-top:1px solid #eef2f7}.export-panel a[data-v-d9df7683]:hover{background:#f8fafc}.export-panel strong[data-v-d9df7683]{font-size:13px}.export-panel span[data-v-d9df7683]{color:#667085;margin:0;font-size:12px}.settings[data-v-d9df7683]{position:relative}.settings-button[data-v-d9df7683]{color:#475467;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:10px;place-items:center;width:38px;height:38px;transition:border-color .16s,background-color .16s,color .16s,box-shadow .16s;display:grid}.settings-button[data-v-d9df7683]:hover,.settings-button.active[data-v-d9df7683]{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd;box-shadow:0 8px 20px #2563eb1f}.settings-button svg[data-v-d9df7683]{width:18px;height:18px}.settings-panel[data-v-d9df7683]{z-index:20;background:#fff;border:1px solid #d8dee8;border-radius:12px;width:292px;padding:14px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 45px #0f172a2e}.settings-panel[data-v-d9df7683]:before{content:"";background:#fff;border-top:1px solid #d8dee8;border-left:1px solid #d8dee8;width:10px;height:10px;position:absolute;top:-6px;right:14px;transform:rotate(45deg)}.settings-heading[data-v-d9df7683]{color:#101828;margin-bottom:12px;font-size:14px;font-weight:800}.speed-setting[data-v-d9df7683]{color:#475467;flex-direction:column;gap:10px;font-size:13px;display:flex}.speed-setting span[data-v-d9df7683]{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.speed-setting strong[data-v-d9df7683]{color:#344054;font-size:13px}.speed-setting small[data-v-d9df7683]{color:#2563eb;font-size:13px;font-weight:800}.speed-setting input[data-v-d9df7683]{width:100%}.viewport[data-v-d9df7683]{background-color:#e9edf3;background-image:linear-gradient(90deg,#94a3b829 1px,#0000 1px),linear-gradient(#94a3b829 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex:1;place-items:center;min-width:0;min-height:0;padding:20px;display:grid;position:relative;overflow:hidden}.viewport.testing[data-v-d9df7683]{background:linear-gradient(90deg,#94a3b81f 1px,#0000 1px),linear-gradient(#94a3b81f 1px,#0000 1px),#edf2f7}.stage[data-v-d9df7683]{background:#0f172a;border-radius:8px;max-width:100%;max-height:100%;position:relative;overflow:hidden;box-shadow:0 22px 55px #0f172a38}.stage-inner[data-v-d9df7683]{transform-origin:0 0;position:absolute;inset:0}.frame[data-v-d9df7683],.overlay[data-v-d9df7683]{width:100%;height:100%;position:absolute;inset:0}.frame[data-v-d9df7683]{-webkit-user-select:none;user-select:none}.overlay[data-v-d9df7683]{z-index:2;cursor:default}.overlay.testing[data-v-d9df7683]{cursor:pointer}.overlay.placing-point[data-v-d9df7683]{cursor:crosshair}.figure[data-v-d9df7683]{cursor:move;border:3px solid;border-radius:6px;transition:border-color .18s,box-shadow .18s,background-color .18s;position:absolute}.overlay.testing .figure[data-v-d9df7683]{cursor:pointer}.figure.highlight[data-v-d9df7683]{background:0 0;border-width:2px}.figure.blur[data-v-d9df7683]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-style:dashed}.figure.text[data-v-d9df7683]{color:#fff;text-shadow:0 1px 2px #00000073;align-items:center;padding:10px 12px;font-weight:800;line-height:1.25;display:flex}.figure.selected[data-v-d9df7683]{outline-offset:2px;outline:2px solid #f59e0b}.figure.locked[data-v-d9df7683]{cursor:crosshair}.figure.active[data-v-d9df7683]{border-width:5px;animation:.22s ease-out both active-highlight-enter-d9df7683,1.28s ease-in-out .22s infinite active-highlight-pulse-d9df7683;box-shadow:0 0 0 3px #fffffff0,0 0 20px #ef4444f2,0 0 46px #ef444470;color:#ef4444!important;border-color:#ef4444!important}.figure-text[data-v-d9df7683]{overflow-wrap:anywhere;overflow:hidden}.click-point[data-v-d9df7683]{z-index:5;pointer-events:none;width:0;height:0;position:absolute}.click-point span[data-v-d9df7683]{background:#ef4444;position:absolute;box-shadow:0 0 0 1px #fff}.click-point .horizontal[data-v-d9df7683]{width:32px;height:3px;top:-1px;left:-16px}.click-point .vertical[data-v-d9df7683]{width:3px;height:32px;top:-16px;left:-1px}.click-point.active span[data-v-d9df7683]{background:#f59e0b;box-shadow:0 0 0 1px #fff,0 0 0 5px #f59e0b33}.handle[data-v-d9df7683]{background:#f59e0b;border:2px solid #fff;border-radius:50%;width:13px;height:13px;position:absolute}.nw[data-v-d9df7683]{cursor:nwse-resize;top:-8px;left:-8px}.ne[data-v-d9df7683]{cursor:nesw-resize;top:-8px;right:-8px}.sw[data-v-d9df7683]{cursor:nesw-resize;bottom:-8px;left:-8px}.se[data-v-d9df7683]{cursor:nwse-resize;bottom:-8px;right:-8px}.cursor[data-v-d9df7683]{z-index:6;pointer-events:none;will-change:transform;width:26px;height:26px;position:absolute}.cursor svg[data-v-d9df7683]{filter:drop-shadow(0 2px 3px #00000073);width:26px;height:26px}.cursor.clicking svg[data-v-d9df7683]{animation:.42s ease-out cursor-click-nudge-d9df7683}.click-ripple[data-v-d9df7683]{z-index:5;pointer-events:none;width:0;height:0;position:absolute}.click-ripple span[data-v-d9df7683]{pointer-events:none;border:3px solid #f59e0b;border-radius:50%;width:36px;height:36px;animation:.46s ease-out forwards click-ripple-d9df7683;position:absolute;top:-18px;left:-18px}.action-callout[data-v-d9df7683]{z-index:8;pointer-events:none;background:#fffffff5;border:1px solid #0f172a24;border-radius:8px;grid-template-columns:92px 1fr;align-items:center;gap:10px;width:216px;min-height:84px;padding:10px;animation:.22s ease-out both callout-pop-d9df7683;display:grid;position:absolute;box-shadow:0 14px 36px #0f172a47,0 0 0 3px #ef444429}.action-callout[data-v-d9df7683]:after{content:"";background:#fffffff5;border-bottom:1px solid #0f172a24;border-right:1px solid #0f172a24;width:14px;height:14px;position:absolute;bottom:-7px;left:28px;transform:rotate(45deg)}.callout-preview[data-v-d9df7683]{background-color:#f8fafc;background-repeat:no-repeat;border:2px solid #ef4444;border-radius:6px;width:92px;height:58px;overflow:hidden}.callout-text[data-v-d9df7683]{color:#111827;font-size:15px;font-weight:800;line-height:1.2}.typed-input-overlay[data-v-d9df7683]{z-index:7;color:#111827;pointer-events:none;background:#fffffff5;border:1px solid #ef44448c;border-radius:4px;align-items:center;padding:0 8px;font-family:Segoe UI,Arial,sans-serif;font-weight:600;line-height:1;animation:.16s ease-out both typed-input-pop-d9df7683;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffe6,0 0 18px #ef444442}.typed-input-overlay span[data-v-d9df7683]{white-space:nowrap;text-overflow:clip;overflow:hidden}.test-hint-button[data-v-d9df7683]{z-index:40;color:#92400e;background:#fffbebf0;border:1px solid #f59e0b47;border-radius:999px;align-items:center;gap:8px;padding:8px 13px 8px 8px;font-size:16px;font-weight:800;transition:border-color .16s,background-color .16s,box-shadow .16s,color .16s,transform .16s;display:inline-flex;position:absolute;top:18px;right:18px;transform:translateY(0);box-shadow:0 14px 32px #0f172a29,0 0 0 4px #f59e0b1a}.test-hint-button[data-v-d9df7683]:hover{color:#78350f;background:#fff7d6fa;border-color:#f59e0b8a;transform:translateY(-1px);box-shadow:0 18px 38px #0f172a30,0 0 0 6px #f59e0b24,0 0 26px #f59e0b3d}.test-hint-button .hint-bulb[data-v-d9df7683]{color:#b45309;background:#fde68a;border-radius:999px;place-items:center;width:28px;height:28px;transition:background-color .16s,color .16s,transform .16s;display:grid;box-shadow:inset 0 0 0 1px #d9770624}.test-hint-button .hint-bulb svg[data-v-d9df7683]{width:19px;height:19px}.test-hint-button:hover .hint-bulb[data-v-d9df7683]{color:#92400e;background:#fcd34d;transform:scale(1.04)}.test-hint-button.active[data-v-d9df7683]{color:#78350f;background:#fffbeb;border-color:#f59e0ba3}.test-feedback[data-v-d9df7683]{z-index:40;color:#1f2937;text-align:center;pointer-events:none;background:#fffffff0;border:1px solid #94a3b83d;border-radius:999px;min-width:280px;max-width:min(620px,100% - 56px);padding:13px 20px;font-size:18px;font-weight:800;line-height:1.25;animation:.16s ease-out both test-feedback-pop-d9df7683;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #0f172a2e,0 0 0 3px #ffffff94}.test-feedback.miss[data-v-d9df7683]{color:#991b1b;background:#fef2f2f2;border-color:#f8717147}.test-feedback.hint[data-v-d9df7683]{color:#92400e;background:#fffbebf2;border-color:#f59e0b52}.test-feedback.success[data-v-d9df7683]{color:#166534;background:#f0fdf4f2;border-color:#22c55e47}.test-input-overlay[data-v-d9df7683]{z-index:9;background:#fffffffa;border:2px solid #ef4444ad;border-radius:4px;align-items:center;padding:0;animation:.16s ease-out both typed-input-pop-d9df7683;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffe6,0 0 22px #ef444447}.test-input-overlay input[data-v-d9df7683]{color:#111827;width:100%;min-width:0;height:100%;font:inherit;background:0 0;border:0;outline:0;padding:0 8px;font-family:Segoe UI,Arial,sans-serif;font-weight:600}.test-input-progress[data-v-d9df7683]{z-index:9;pointer-events:none;background:#94a3b857;border-radius:999px;height:3px;position:absolute;overflow:hidden}.test-input-progress span[data-v-d9df7683]{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#38bdf8,#2563eb);width:100%;height:100%;animation:3s linear forwards test-input-progress-d9df7683;display:block}.test-result[data-v-d9df7683]{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a7a;place-items:center;padding:28px;display:grid;position:absolute;inset:0}.test-result-card[data-v-d9df7683]{color:#111827;background:#fffffffa;border:1px solid #e2e8f0f0;border-radius:14px;width:min(520px,100%);padding:24px;box-shadow:0 26px 70px #0f172a47}.test-result-kicker[data-v-d9df7683]{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:900}.test-result-card h2[data-v-d9df7683]{margin:6px 0 18px;font-size:26px}.test-result-card dl[data-v-d9df7683]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.test-result-card dl div[data-v-d9df7683]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px}.test-result-card dt[data-v-d9df7683]{color:#64748b;margin-bottom:4px;font-size:12px;font-weight:800}.test-result-card dd[data-v-d9df7683]{color:#0f172a;margin:0;font-size:20px;font-weight:900}.test-result-actions[data-v-d9df7683]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.test-result-actions button[data-v-d9df7683]{color:#fff;background:#2563eb;border:1px solid #2563eb;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:800}.test-result-actions button.secondary[data-v-d9df7683]{color:#334155;background:#fff;border-color:#cbd5e1}.typed-caret[data-v-d9df7683]{background:#1d4ed8;border-radius:999px;width:2px;height:1.1em;margin-left:2px;animation:.72s steps(2,start) infinite typed-caret-blink-d9df7683}.action-callout.field .callout-preview[data-v-d9df7683]{border-color:#0ea5e9}.action-callout.menu .callout-preview[data-v-d9df7683]{border-color:#f97316}.mouse-indicator[data-v-d9df7683]{z-index:7;opacity:0;pointer-events:none;transform-origin:50% 80%;background:linear-gradient(#fff,#e8eef7);border:2px solid #0f172aeb;border-radius:12px 12px 10px 10px;width:21px;height:30px;animation:.16s ease-out forwards mouse-pop-d9df7683;position:absolute;box-shadow:0 3px 8px #0f172a52,inset 0 0 0 1px #fffc}.mouse-indicator[data-v-d9df7683]:before{content:"";background:#0f172a75;width:2px;height:16px;position:absolute;top:11px;left:50%;transform:translate(-50%)}.mouse-button[data-v-d9df7683]{background:#94a3b83d;border-radius:7px 7px 3px 3px;width:7px;height:10px;position:absolute;top:3px}.mouse-button.left[data-v-d9df7683]{left:4px}.mouse-button.right[data-v-d9df7683]{right:4px}.mouse-wheel[data-v-d9df7683]{background:#475569;border-radius:999px;width:2px;height:6px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.mouse-indicator.clicking .left[data-v-d9df7683]{animation:.42s ease-out left-button-click-d9df7683}@keyframes active-highlight-enter-d9df7683{0%{opacity:0;transform:scale(.992)}to{opacity:.86;transform:scale(1)}}@keyframes active-highlight-pulse-d9df7683{0%{opacity:.86;filter:brightness(.98);box-shadow:0 0 0 2px #fffc,0 0 10px #ef4444e0,0 0 24px #ef444447}50%{opacity:1;filter:brightness(1.22);box-shadow:0 0 0 4px #fffffff5,0 0 26px #ef4444,0 0 58px #ef44447a}to{opacity:.86;filter:brightness(.98);box-shadow:0 0 0 2px #fffc,0 0 10px #ef4444e0,0 0 24px #ef444447}}@keyframes callout-pop-d9df7683{0%{opacity:0;scale:.94}to{opacity:1;scale:1}}@keyframes typed-input-pop-d9df7683{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes test-feedback-pop-d9df7683{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes test-input-progress-d9df7683{0%{scale:0 1}to{scale:1}}@keyframes typed-caret-blink-d9df7683{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes mouse-pop-d9df7683{0%{opacity:0;scale:.86}to{opacity:1;scale:1}}@keyframes left-button-click-d9df7683{0%,to{background:#94a3b83d;transform:translateY(0)}34%{background:#60a5fa;transform:translateY(2px);box-shadow:inset 0 2px 2px #0f172a42}}@keyframes cursor-click-nudge-d9df7683{0%,to{transform:translate(0)scale(1)}38%{transform:translate(1px,2px)scale(.94)}}@keyframes click-ripple-d9df7683{0%{opacity:0;scale:.45}18%{opacity:.95;scale:.8}to{opacity:0;scale:1.8}}
