.topbar[data-v-a52a85b0]{display:flex;align-items:center;gap:24px;min-height:56px;padding:8px 20px;background:#0d1526;border-bottom:1px solid #1c2a44;flex-shrink:0;box-sizing:border-box}.brand[data-v-a52a85b0]{display:flex;align-items:baseline;gap:8px}.brand-mark[data-v-a52a85b0]{color:#38bdf8;font-weight:700;font-size:20px}.brand-name[data-v-a52a85b0]{font-weight:700;letter-spacing:.08em;color:#e8eef9}.brand-sub[data-v-a52a85b0]{color:#7d8aa5;font-size:13px}.progress[data-v-a52a85b0]{display:flex;align-items:center;gap:8px;padding:4px 12px;background:#111c33;border:1px solid #22314f;border-radius:6px;font-size:13px}.progress-label[data-v-a52a85b0]{color:#7d8aa5}.progress-value[data-v-a52a85b0]{color:#38bdf8;font-weight:600;font-variant-numeric:tabular-nums}.actions[data-v-a52a85b0]{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.mode-picker[data-v-a52a85b0]{display:flex;align-items:center;gap:6px;padding-left:8px;color:#7d8aa5;font-size:12px}.mode-picker select[data-v-a52a85b0]{padding:5px 24px 5px 8px;color:#c7d3e8;font:inherit;background:#111c33;border:1px solid #27375a;border-radius:6px}.btn[data-v-a52a85b0]{min-height:38px;padding:6px 14px;font-size:13px;color:#c7d3e8;background:#16213a;border:1px solid #27375a;border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn[data-v-a52a85b0]:hover{background:#1c2a49;border-color:#35507e}.btn-danger[data-v-a52a85b0]{color:#ffb4c0;background:#3a1622;border-color:#7e2740}.btn-danger[data-v-a52a85b0]:hover{background:#4a1b2b;border-color:#a13453}.btn-ghost[data-v-a52a85b0]{background:transparent;border-color:transparent;color:#7d8aa5}.btn-ghost[data-v-a52a85b0]:hover{background:#16213a;color:#c7d3e8}@media(max-width:1050px){.topbar[data-v-a52a85b0]{gap:8px 12px;flex-wrap:wrap}.brand-sub[data-v-a52a85b0]{display:none}.progress[data-v-a52a85b0]{margin-left:auto}.actions[data-v-a52a85b0]{width:100%;margin-left:0}}@media(max-width:600px){.topbar[data-v-a52a85b0]{padding:8px 12px}.actions[data-v-a52a85b0]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.btn[data-v-a52a85b0],.mode-picker[data-v-a52a85b0]{min-width:0;min-height:44px;padding-inline:8px;white-space:nowrap}.mode-picker[data-v-a52a85b0]{justify-content:center}.mode-picker select[data-v-a52a85b0]{min-height:44px}}@media(max-width:360px){.brand-name[data-v-a52a85b0]{font-size:14px}.progress-label[data-v-a52a85b0]{display:none}}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.lab-terminal[data-v-3f94cb8a]{width:100%;height:100%;padding:8px;box-sizing:border-box;background:#0b1220}.lab-terminal[data-v-3f94cb8a] .xterm{height:100%}.mission-panel[data-v-5670b588]{height:100%;overflow:hidden;color:#c7d3e8;background:#0f1830;border-left:1px solid #1c2a44}.panel-scroll[data-v-5670b588]{height:100%;overflow-y:auto;padding:18px 20px 28px;box-sizing:border-box}.level-header[data-v-5670b588]{display:flex;align-items:center;gap:8px}.level-badge[data-v-5670b588],.mode-badge[data-v-5670b588],.done-badge[data-v-5670b588]{padding:3px 9px;font-size:11px;border-radius:999px}.level-badge[data-v-5670b588]{color:#38bdf8;background:#38bdf81f;border:1px solid rgba(56,189,248,.35)}.mode-badge[data-v-5670b588]{color:#a8c7fa;background:#111c33;border:1px solid #22314f;cursor:pointer}.done-badge[data-v-5670b588]{margin-left:auto;color:#7fdba7;background:#7fdba71a;border:1px solid rgba(127,219,167,.35)}.level-name[data-v-5670b588]{margin:10px 0 3px;color:#eef3fc;font-size:21px}.level-tagline[data-v-5670b588]{margin:0;color:#7d8aa5;font-size:12px}.story-details[data-v-5670b588],.goals-block[data-v-5670b588],.current-action[data-v-5670b588],.hints-block[data-v-5670b588],.mastery-strip[data-v-5670b588],.verification[data-v-5670b588],.summary-block[data-v-5670b588],.next-transfer[data-v-5670b588]{margin-top:14px}.story-details[data-v-5670b588]{padding:11px 12px;background:#111c33;border-radius:8px}.story-details summary[data-v-5670b588],.goals-block details summary[data-v-5670b588],.errors-details summary[data-v-5670b588]{cursor:pointer}.story-details summary[data-v-5670b588]{color:#c7d3e8;font-size:13px;line-height:1.55}.story-details summary span[data-v-5670b588]{display:block;color:#7dd3fc;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.story-details p[data-v-5670b588]{margin:10px 0 0;color:#93a5c6;font-size:12px;line-height:1.65}.goals-block h3[data-v-5670b588],.hints-block h3[data-v-5670b588],.mastery-strip h3[data-v-5670b588],.verification h3[data-v-5670b588],.summary-block h3[data-v-5670b588],.next-transfer h3[data-v-5670b588]{margin:0 0 7px;color:#93a5c6;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.goals-block ul[data-v-5670b588],.summary-block ul[data-v-5670b588]{margin:0;padding-left:18px;font-size:13px;line-height:1.65}.goals-block details[data-v-5670b588]{margin-top:9px;color:#7d8aa5;font-size:12px}.current-action[data-v-5670b588]{padding:15px;background:linear-gradient(145deg,#38bdf81a,#111c33f2);border:1px solid rgba(56,189,248,.35);border-radius:10px}.action-header[data-v-5670b588]{display:flex;justify-content:space-between;gap:10px}.action-eyebrow[data-v-5670b588]{color:#7dd3fc;font-size:10px;font-weight:800;letter-spacing:.08em}.action-header h3[data-v-5670b588]{margin:4px 0 0;color:#eef3fc;font-size:14px;line-height:1.4}.step-progress[data-v-5670b588]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px;max-width:105px;padding-top:4px}.step-progress i[data-v-5670b588]{width:10px;height:4px;background:#2a3a5c;border-radius:2px}.step-progress i.active[data-v-5670b588]{background:#38bdf8}.step-progress i.done[data-v-5670b588]{background:#7fdba7}.step-objective[data-v-5670b588],.step-instruction[data-v-5670b588]{margin:12px 0 0;font-size:13px;line-height:1.65}.step-objective[data-v-5670b588]{color:#b8c5dd}.step-objective strong[data-v-5670b588]{color:#ffd580}.step-instruction[data-v-5670b588]{color:#c7d3e8}.concept-card[data-v-5670b588]{margin-top:12px;padding:11px;background:#a78bfa14;border:1px solid rgba(167,139,250,.3);border-radius:8px}.concept-card>span[data-v-5670b588]{color:#c4b5fd;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.concept-card h4[data-v-5670b588]{margin:3px 0 4px;color:#ddd6fe;font-size:13px}.concept-card p[data-v-5670b588],.observation-box p[data-v-5670b588],.step-complete p[data-v-5670b588]{margin:0;font-size:12px;line-height:1.6}.observation-box[data-v-5670b588]{margin-top:12px;padding:9px 10px;background:#ffd5800f;border-left:3px solid #ffd580;border-radius:4px}.observation-box>span[data-v-5670b588]{color:#ffd580;font-size:10px;font-weight:800}.command-run[data-v-5670b588],.structured-form[data-v-5670b588],.manual-form[data-v-5670b588],.question[data-v-5670b588],.checkpoint[data-v-5670b588]{margin-top:13px}.command-run[data-v-5670b588]{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 12px;color:#a8e6c0;text-align:left;background:#0b1220;border:1px solid #2b7553;border-radius:7px;cursor:pointer}.command-run span[data-v-5670b588]{font-size:10px;font-weight:800}code[data-v-5670b588],input[data-v-5670b588]{font-family:JetBrains Mono,Consolas,monospace}.structured-form[data-v-5670b588],.manual-form[data-v-5670b588],.verification-form[data-v-5670b588]{display:flex;flex-direction:column;gap:9px}.command-note[data-v-5670b588]{margin:8px 0 0;color:#7d8aa5;font-size:11px;line-height:1.5}.command-template[data-v-5670b588]{overflow-x:auto;padding:9px 10px;color:#ffd580;font-size:12px;white-space:nowrap;background:#0b1220;border:1px solid rgba(255,213,128,.3);border-radius:6px}.structured-form label[data-v-5670b588],.manual-form label[data-v-5670b588],.verification-form label[data-v-5670b588]{display:flex;flex-direction:column;gap:4px;color:#93a5c6;font-size:11px}input[type=text][data-v-5670b588],.structured-form input[data-v-5670b588],.manual-form input[data-v-5670b588],.verification-form input[data-v-5670b588]{min-width:0;padding:9px 10px;color:#eef3fc;background:#0b1220;border:1px solid #314263;border-radius:6px}.structured-form button[data-v-5670b588],.manual-form button[data-v-5670b588],.question button[data-v-5670b588],.checkpoint button[data-v-5670b588],.verification-form button[data-v-5670b588],.btn-evidence[data-v-5670b588],.btn-advance[data-v-5670b588],.btn-next[data-v-5670b588]{padding:9px 11px;color:#06121f;font-size:12px;font-weight:800;background:#38bdf8;border:none;border-radius:7px;cursor:pointer}.question[data-v-5670b588]{display:flex;flex-direction:column;gap:8px;padding:0;border:none}.question legend[data-v-5670b588]{margin-bottom:8px;color:#eef3fc;font-size:13px;font-weight:700}.question label[data-v-5670b588],.checkpoint label[data-v-5670b588]{display:flex;align-items:flex-start;gap:7px;color:#c7d3e8;font-size:12px;line-height:1.5}.checkpoint[data-v-5670b588]{display:flex;flex-direction:column;gap:10px}.checkpoint button[data-v-5670b588]:disabled{cursor:not-allowed;opacity:.45}.btn-evidence[data-v-5670b588],.btn-advance[data-v-5670b588]{width:100%;margin-top:13px}.btn-evidence[data-v-5670b588]{color:#d9fbe6;background:#2b755359;border:1px solid #2b7553}.inline-error[data-v-5670b588]{margin:9px 0 0;color:#fca5a5;font-size:12px}.errors-details[data-v-5670b588]{margin-top:10px;color:#d8b4a0;font-size:11px}.errors-details ul[data-v-5670b588]{margin:6px 0 0;padding-left:17px}.step-complete[data-v-5670b588]{margin-top:12px;padding:9px 10px;color:#a8e6c0;background:#7fdba714;border-radius:6px}.step-complete span[data-v-5670b588]{font-size:11px;font-weight:800}.step-complete p[data-v-5670b588]{margin-top:4px;color:#b8c5dd}.hints-block[data-v-5670b588]{padding-top:13px;border-top:1px solid #1c2a44}.hints[data-v-5670b588]{display:flex;flex-direction:column;gap:8px;margin:0 0 9px;padding:0;list-style:none;font-size:12px;line-height:1.55}.hints li[data-v-5670b588]{padding:8px 9px;background:#ffd5800d;border-radius:6px}.hints span[data-v-5670b588]{display:block;color:#ffd580;font-size:9px;font-weight:800}.btn-hint[data-v-5670b588]{padding:7px 11px;color:#ffd580;font-size:12px;background:#ffd58014;border:1px solid rgba(255,213,128,.3);border-radius:7px;cursor:pointer}.hint-note[data-v-5670b588]{margin:0;color:#7d8aa5;font-size:11px}.mastery-strip[data-v-5670b588]{display:flex;flex-wrap:wrap;gap:6px}.mastery-strip h3[data-v-5670b588]{width:100%}.mastery-strip span[data-v-5670b588]{padding:3px 8px;color:#c4b5fd;font-size:10px;background:#a78bfa14;border:1px solid rgba(167,139,250,.25);border-radius:999px}.verification[data-v-5670b588]{padding:12px;background:#7fdba70f;border:1px solid rgba(127,219,167,.25);border-radius:8px}.verification.locked[data-v-5670b588]{color:#66779a;background:#66779a0d;border-color:#22314f}.verification>p[data-v-5670b588]{margin:0 0 8px;font-size:12px;line-height:1.55}.verification>code[data-v-5670b588]{display:block;overflow-x:auto;color:#7fdba7;font-size:12px;white-space:nowrap}.verification dl[data-v-5670b588]{margin:9px 0}.verification dl div[data-v-5670b588]{margin-top:6px}.verification dt[data-v-5670b588]{color:#ffd580;font-family:JetBrains Mono,Consolas,monospace;font-size:11px}.verification dd[data-v-5670b588]{margin:2px 0 0;color:#93a5c6;font-size:11px}.verification-form[data-v-5670b588]{margin-top:10px}.completion-card[data-v-5670b588]{display:flex;gap:12px;margin-top:16px;padding:14px;background:#7fdba714;border:1px solid rgba(127,219,167,.3);border-radius:9px}.completion-mark[data-v-5670b588]{width:32px;height:32px;display:grid;flex:0 0 auto;place-items:center;color:#06121f;font-weight:900;background:#7fdba7;border-radius:50%}.completion-card h3[data-v-5670b588],.completion-card p[data-v-5670b588]{margin:0}.completion-card h3[data-v-5670b588]{color:#a8e6c0;font-size:14px}.completion-card p[data-v-5670b588],.next-transfer p[data-v-5670b588]{margin-top:4px;color:#b8c5dd;font-size:12px;line-height:1.6}.next-transfer[data-v-5670b588]{padding:11px 12px;background:#111c33;border-radius:8px}.next-transfer p[data-v-5670b588]{margin-bottom:0}.btn-next[data-v-5670b588]{width:100%;margin-top:14px;padding:11px}@media(max-width:600px){.mode-badge[data-v-5670b588],.command-run[data-v-5670b588],.structured-form button[data-v-5670b588],.manual-form button[data-v-5670b588],.question button[data-v-5670b588],.checkpoint button[data-v-5670b588],.verification-form button[data-v-5670b588],.btn-evidence[data-v-5670b588],.btn-advance[data-v-5670b588],.btn-next[data-v-5670b588],.btn-hint[data-v-5670b588]{min-height:44px}.structured-form input[data-v-5670b588],.manual-form input[data-v-5670b588],.verification-form input[data-v-5670b588]{min-height:44px;box-sizing:border-box}.question label[data-v-5670b588],.checkpoint label[data-v-5670b588],.story-details summary[data-v-5670b588],.goals-block details summary[data-v-5670b588],.errors-details summary[data-v-5670b588]{min-height:44px;align-items:center}}.loading-overlay[data-v-763b20bb]{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;box-sizing:border-box;overscroll-behavior:contain;background:#070b14eb;backdrop-filter:blur(2px)}.loading-card[data-v-763b20bb]{width:min(420px,90vw);max-height:calc(100dvh - 32px);overflow-y:auto;padding:32px;box-sizing:border-box;background:#0f1830;border:1px solid #22314f;border-radius:12px}.loading-brand[data-v-763b20bb]{font-size:18px;font-weight:700;color:#e8eef9;margin-bottom:24px;text-align:center}.loading-brand .mark[data-v-763b20bb]{color:#38bdf8}.loading-brand .sub[data-v-763b20bb]{color:#7d8aa5;font-size:14px;font-weight:400}.stage-list[data-v-763b20bb]{list-style:none;margin:0;padding:0}.stage-item[data-v-763b20bb]{display:flex;align-items:center;gap:12px;padding:10px 4px;font-size:14px;color:#8b9bbb;transition:color .2s ease}.stage-item.active[data-v-763b20bb]{color:#e8eef9}.stage-item.done[data-v-763b20bb]{color:#7fdba7}.stage-icon[data-v-763b20bb]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:13px}.spinner[data-v-763b20bb]{width:14px;height:14px;border:2px solid rgba(56,189,248,.25);border-top-color:#38bdf8;border-radius:50%;animation:spin-763b20bb .9s linear infinite}@keyframes spin-763b20bb{to{transform:rotate(360deg)}}.loading-note[data-v-763b20bb]{margin:20px 0 0;font-size:12px;color:#8b9bbb;text-align:center;line-height:1.6}.error-box[data-v-763b20bb]{text-align:center}.error-title[data-v-763b20bb]{margin:0 0 8px;font-size:16px;font-weight:600;color:#ff9eb0}.error-message[data-v-763b20bb]{margin:0 0 20px;font-size:13px;color:#b8c5dd;line-height:1.7;word-break:break-all}.btn-retry[data-v-763b20bb]{padding:8px 28px;font-size:14px;color:#06121f;font-weight:600;background:#38bdf8;border:none;border-radius:8px;cursor:pointer}.btn-retry[data-v-763b20bb]:hover{background:#5ccbf9}.log-panel[data-v-763b20bb]{margin-top:16px;text-align:left}.log-toggle[data-v-763b20bb]{background:none;border:none;color:#7d8aa5;font-size:12px;cursor:pointer;padding:4px 0;font-family:inherit}.log-toggle[data-v-763b20bb]:hover{color:#b8c5dd}.log-list[data-v-763b20bb]{margin-top:8px;max-height:180px;overflow-y:auto;padding:8px 10px;background:#0a101f;border:1px solid #1c2a44;border-radius:6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:11px;line-height:1.6}.log-empty[data-v-763b20bb]{margin:0;color:#8b9bbb}.log-line[data-v-763b20bb]{display:grid;grid-template-columns:64px 60px 1fr;gap:8px;white-space:pre-wrap;word-break:break-all;color:#b8c5dd}.log-time[data-v-763b20bb]{color:#5a6a8a}.log-source[data-v-763b20bb]{color:#38bdf8}.log-text[data-v-763b20bb]{color:#d6deeb}.log-line.log-warn .log-text[data-v-763b20bb]{color:#f5c97b}.log-line.log-error .log-text[data-v-763b20bb]{color:#ff9eb0}@media(max-width:520px){.loading-card[data-v-763b20bb]{padding:24px 20px}.btn-retry[data-v-763b20bb],.log-toggle[data-v-763b20bb]{min-height:44px}}.completion-page[data-v-0ede0480]{flex:1;overflow-y:auto;padding:48px 24px}.completion-inner[data-v-0ede0480]{max-width:860px;margin:0 auto;text-align:center}.congrats-badge[data-v-0ede0480]{display:inline-block;font-size:14px;color:#7fdba7;background:#7fdba71a;border:1px solid rgba(127,219,167,.35);padding:6px 18px;border-radius:999px;margin:0 0 20px}.title[data-v-0ede0480]{margin:0 0 16px;font-size:34px;color:#eef3fc}.intro[data-v-0ede0480]{margin:0 auto 40px;max-width:640px;font-size:15px;line-height:1.9;color:#b8c5dd}.directions h2[data-v-0ede0480],.ctf-note h2[data-v-0ede0480]{font-size:15px;color:#93a5c6;letter-spacing:.08em;margin:0 0 18px}.direction-grid[data-v-0ede0480]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:14px;margin-bottom:40px;text-align:left}.direction-card[data-v-0ede0480]{background:#0f1830;border:1px solid #22314f;border-radius:10px;padding:18px 20px;transition:border-color .2s ease,transform .2s ease}.direction-card[data-v-0ede0480]:hover{border-color:#38bdf8;transform:translateY(-2px)}.direction-card h3[data-v-0ede0480]{margin:0 0 8px;font-size:16px;color:#38bdf8}.direction-card p[data-v-0ede0480]{margin:0;font-size:13px;line-height:1.8;color:#b8c5dd}.ctf-note[data-v-0ede0480]{max-width:680px;margin:0 auto 40px;padding:20px 24px;background:#38bdf80f;border:1px solid rgba(56,189,248,.25);border-radius:10px}.ctf-note p[data-v-0ede0480]{margin:0;font-size:14px;line-height:1.9;color:#c7d3e8;text-align:left}.btn-restart[data-v-0ede0480]{min-height:44px;padding:12px 36px;font-size:15px;font-weight:600;color:#06121f;background:#38bdf8;border:none;border-radius:8px;cursor:pointer}.btn-restart[data-v-0ede0480]:hover{background:#5ccbf9}@media(max-width:520px){.completion-page[data-v-0ede0480]{padding:32px 16px}.title[data-v-0ede0480]{font-size:clamp(26px,9vw,34px)}.intro[data-v-0ede0480]{margin-bottom:28px}.ctf-note[data-v-0ede0480]{padding:18px}}.modal-mask[data-v-d937cbcf]{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#070b14b3}.modal-card[data-v-d937cbcf]{width:min(620px,92vw);max-height:80vh;display:flex;flex-direction:column;background:#0f1830;border:1px solid #22314f;border-radius:12px;overflow:hidden}.modal-header[data-v-d937cbcf]{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #1c2a44}.modal-header h2[data-v-d937cbcf]{margin:0;font-size:17px;color:#eef3fc}.btn-close[data-v-d937cbcf]{font-size:22px;line-height:1;color:#7d8aa5;background:none;border:none;cursor:pointer;padding:0 4px}.btn-close[data-v-d937cbcf]:hover{color:#e8eef9}.modal-body[data-v-d937cbcf]{padding:20px 24px;overflow-y:auto}.modal-body h3[data-v-d937cbcf]{margin:18px 0 8px;font-size:14px;color:#38bdf8}.modal-body p[data-v-d937cbcf],.modal-body li[data-v-d937cbcf]{font-size:14px;line-height:1.85;color:#c7d3e8}.modal-body a[data-v-d937cbcf]{color:#7dd3fc}.modal-body ul[data-v-d937cbcf]{margin:0;padding-left:20px}@media(max-width:520px){.modal-header[data-v-d937cbcf]{padding:12px 16px}.modal-body[data-v-d937cbcf]{padding:16px}.btn-close[data-v-d937cbcf]{min-width:44px;min-height:44px}}.onboarding-layer[data-v-6f5e43c1]{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:flex-end;padding:20px;background:#0509128c;box-sizing:border-box;transition:background-color .3s ease}.onboarding-layer.focus-terminal[data-v-6f5e43c1]{background:#0509121f}.terminal-highlight[data-v-6f5e43c1]{position:absolute;border:2px solid rgba(56,189,248,.65);border-radius:12px;box-shadow:inset 0 0 30px #38bdf814;pointer-events:none}.terminal-highlight span[data-v-6f5e43c1]{position:absolute;top:10px;right:12px;padding:4px 8px;color:#06121f;font-size:10px;font-weight:800;background:#7dd3fc;border-radius:999px}.onboarding-card[data-v-6f5e43c1]{position:relative;z-index:1;width:min(460px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:25px;color:#c7d3e8;background:#0f1830fa;border:1px solid #2b4268;border-radius:15px;box-shadow:0 20px 65px #00000080;box-sizing:border-box}.eyebrow[data-v-6f5e43c1]{display:block;margin-bottom:7px;color:#38bdf8;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h2[data-v-6f5e43c1]{margin:0;color:#eef3fc;font-size:22px;line-height:1.3}.onboarding-card>p[data-v-6f5e43c1],.tutorial-body>p[data-v-6f5e43c1]{margin:12px 0 0;font-size:13px;line-height:1.7}.migration-notice[data-v-6f5e43c1]{padding:9px 10px;color:#ffd580;background:#ffd58014;border:1px solid rgba(255,213,128,.25);border-radius:7px}.mode-grid[data-v-6f5e43c1]{display:grid;gap:11px;margin-top:20px}.mode-card[data-v-6f5e43c1]{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:16px;color:#c7d3e8;text-align:left;background:#111c33;border:1px solid #2a3a5c;border-radius:10px;cursor:pointer}.mode-card[data-v-6f5e43c1]:hover,.mode-card-recommended[data-v-6f5e43c1]{border-color:#38bdf8a6}.mode-card strong[data-v-6f5e43c1]{color:#eef3fc;font-size:16px}.mode-card span[data-v-6f5e43c1]:last-child{font-size:12px;line-height:1.55}.recommended-badge[data-v-6f5e43c1]{color:#7dd3fc;font-size:10px;font-weight:800}.tutorial-header[data-v-6f5e43c1]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.step-count[data-v-6f5e43c1]{flex:0 0 auto;padding:4px 8px;color:#7dd3fc;font-size:11px;background:#38bdf81a;border-radius:999px}.tutorial-body[data-v-6f5e43c1]{min-height:300px;padding:22px 0}.prompt-demo[data-v-6f5e43c1],.anatomy-demo[data-v-6f5e43c1],.placeholder-demo[data-v-6f5e43c1]{padding:16px;background:#0b1220;border:1px solid #2a3a5c;border-radius:9px}.prompt-demo[data-v-6f5e43c1]{font-family:JetBrains Mono,Consolas,monospace;font-size:15px}.prompt[data-v-6f5e43c1]{color:#7fdba7}.cursor[data-v-6f5e43c1]{color:#eef3fc}.key-grid[data-v-6f5e43c1],.support-list[data-v-6f5e43c1]{display:grid;gap:9px;margin:16px 0 0;padding:0;list-style:none}.key-grid[data-v-6f5e43c1]{grid-template-columns:1fr 1fr}.key-grid li[data-v-6f5e43c1],.support-list li[data-v-6f5e43c1]{display:flex;flex-direction:column;gap:4px;padding:9px;font-size:11px;background:#111c33;border-radius:7px}kbd[data-v-6f5e43c1]{align-self:flex-start;padding:3px 6px;color:#eef3fc;font-family:inherit;background:#1c2a44;border:1px solid #314263;border-radius:4px}.anatomy-demo[data-v-6f5e43c1]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:JetBrains Mono,Consolas,monospace}.anatomy-demo span[data-v-6f5e43c1]{display:flex;flex-direction:column;gap:4px}.anatomy-demo small[data-v-6f5e43c1]{font-family:system-ui,sans-serif;font-size:9px}.command-part[data-v-6f5e43c1]{color:#7fdba7}.space-part[data-v-6f5e43c1]{padding:3px 5px;color:#06121f;font-family:system-ui,sans-serif;font-size:9px;background:#ffd580;border-radius:3px}.argument-part[data-v-6f5e43c1]{color:#7dd3fc}.demo-command[data-v-6f5e43c1]{width:100%;margin-top:16px;padding:11px;color:#a8e6c0;font-weight:700;background:#10251f;border:1px solid #2b7553;border-radius:7px;cursor:pointer}.observation[data-v-6f5e43c1]{color:#93a5c6}.placeholder-demo[data-v-6f5e43c1]{display:flex;flex-direction:column;align-items:center;gap:9px}.placeholder-demo code[data-v-6f5e43c1]{width:100%;padding:8px;color:#ffd580;text-align:center;background:#111c33;border-radius:5px;box-sizing:border-box}.placeholder-demo span[data-v-6f5e43c1],.placeholder-demo strong[data-v-6f5e43c1]{font-size:10px}.support-list strong[data-v-6f5e43c1]{color:#7dd3fc}.tutorial-footer[data-v-6f5e43c1]{display:flex;justify-content:flex-end;gap:8px;padding-top:15px;border-top:1px solid #1c2a44}.btn-skip[data-v-6f5e43c1],.btn-primary[data-v-6f5e43c1]{padding:8px 13px;font-size:12px;border-radius:7px;cursor:pointer}.btn-skip[data-v-6f5e43c1]{color:#93a5c6;background:transparent;border:1px solid transparent}.btn-primary[data-v-6f5e43c1]{min-width:100px;color:#06121f;font-weight:800;background:#38bdf8;border:none}.btn-primary[data-v-6f5e43c1]:disabled{color:#66779a;background:#22314f;cursor:not-allowed}@media(max-width:900px){.terminal-highlight[data-v-6f5e43c1]{display:none}.onboarding-layer[data-v-6f5e43c1],.onboarding-layer.focus-terminal[data-v-6f5e43c1]{justify-content:center;background:#05091273}}@media(max-width:520px){.onboarding-card[data-v-6f5e43c1]{padding:20px}.key-grid[data-v-6f5e43c1]{grid-template-columns:1fr}.demo-command[data-v-6f5e43c1],.btn-skip[data-v-6f5e43c1],.btn-primary[data-v-6f5e43c1]{min-height:44px}}.app-shell[data-v-75a5c043]{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#0a101f;color:#d6deeb}.layout[data-v-75a5c043]{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 400px;min-height:0}.terminal-pane[data-v-75a5c043]{min-width:0;min-height:0;overflow:hidden;border-right:1px solid #1c2a44}@media(max-width:900px){.app-shell[data-v-75a5c043]{overflow-y:auto;overscroll-behavior-y:contain}.layout[data-v-75a5c043]{flex:0 0 auto;min-height:calc(100dvh - 56px);grid-template-columns:1fr;grid-template-rows:clamp(180px,45vh,320px) minmax(320px,1fr)}.terminal-pane[data-v-75a5c043]{border-right:none;border-bottom:1px solid #1c2a44}}:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif}*{scrollbar-width:thin;scrollbar-color:#2a3a5c transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#2a3a5c;border-radius:4px}*::-webkit-scrollbar-track{background:transparent}html,body,#app{margin:0;padding:0;height:100%;background:#0a101f}body{overflow:hidden;-webkit-font-smoothing:antialiased}button:focus-visible,[tabindex]:focus-visible,a[href]:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #7dd3fc;outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
