.cap-root{--cap-bg:#06061a;--cap-bg-2:#0c0a2a;--cap-surface:#ffffff08;--cap-surface-2:#ffffff0f;--cap-border:#ffffff1a;--cap-border-strong:#ffffff38;--cap-ink:#fff;--cap-ink-soft:#ffffffc7;--cap-muted:#ffffff8c;--cap-dim:#ffffff5c;--cap-cyan:#5ef7ff;--cap-cyan-soft:#5ef7ff1f;--cap-cyan-strong:#5ef7ffd9;--cap-safe:#4ade80;--cap-safe-soft:#4ade801f;--cap-threat:#f87171;--cap-threat-soft:#f871711f;--cap-amber:#fbbf24;background:radial-gradient(1100px 600px at 50% -10%, #5ef7ff0f, transparent 60%), var(--cap-bg);min-height:100svh;color:var(--cap-ink);font-family:var(--font-sans,var(--font-inter,ui-sans-serif, system-ui, sans-serif));-webkit-font-smoothing:antialiased}.cap-root *{box-sizing:border-box}.cap-root,.cap-root *{-webkit-user-select:none;user-select:none}.cap-root input,.cap-root textarea{-webkit-user-select:text;user-select:text}.cap-shell{max-width:1080px;margin:0 auto;padding:28px 22px 80px}.cap-shell-narrow{max-width:760px}.cap-topbar{background:var(--cap-surface);border:1px solid var(--cap-border);color:var(--cap-ink);border-radius:16px;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.cap-topbar-title{letter-spacing:.28em;text-transform:uppercase;color:var(--cap-ink);font-size:12px;font-weight:700}.cap-topbar-sub{color:var(--cap-muted);letter-spacing:.02em;margin-top:4px;font-size:11px}.cap-topbar-actions{gap:8px;display:flex}.cap-btn{cursor:pointer;border:0;border-radius:12px;align-items:center;gap:8px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;transition:transform 60ms,box-shadow .18s,background .18s,color .18s,border-color .18s;display:inline-flex}.cap-btn-primary{background:var(--cap-cyan);color:var(--cap-bg);box-shadow:0 6px 22px #5ef7ff2e}.cap-btn-primary:hover{background:#84f9ff}.cap-btn-primary:disabled{color:var(--cap-dim);cursor:not-allowed;box-shadow:none;background:#ffffff1a}.cap-btn-ghost{color:var(--cap-ink);border:1px solid var(--cap-border);background:#ffffff0a}.cap-btn-ghost:hover{border-color:var(--cap-border-strong)}.cap-btn-ghost-light{color:var(--cap-ink);border:1px solid var(--cap-border);background:#ffffff0f}.cap-btn-ghost-light:hover{border-color:var(--cap-border-strong);background:#ffffff1a}.cap-eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--cap-muted);font-size:10px;font-weight:700;font-family:var(--font-mono,ui-monospace, monospace)}.cap-eyebrow-light{color:var(--cap-dim)}.cap-hero{margin-top:22px}.cap-hero h1{letter-spacing:-.02em;color:var(--cap-ink);background:linear-gradient(#fff 0%,#fff9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:8px 0;font-size:clamp(28px,4vw,40px);font-weight:700}.cap-hero p{color:var(--cap-ink-soft);max-width:620px;margin:0;font-size:15px;line-height:1.55}.cap-hero-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.cap-name-input{background:var(--cap-surface);border:1px solid var(--cap-border);color:var(--cap-ink);border-radius:12px;outline:none;min-width:260px;padding:11px 14px;font-family:inherit;font-size:14px;transition:border-color .18s,background .18s}.cap-name-input::placeholder{color:var(--cap-dim)}.cap-name-input:focus{border-color:var(--cap-cyan-strong);background:#5ef7ff0a}.cap-progress-card{background:var(--cap-surface);border:1px solid var(--cap-border);border-radius:16px;align-items:center;gap:18px;margin-top:28px;padding:16px 20px;display:flex}.cap-progress-bar{background:#ffffff14;border-radius:999px;flex:1;height:6px;overflow:hidden}.cap-progress-fill{background:linear-gradient(90deg,#5ef7ff 0%,#c2faff 100%);height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1)}.cap-progress-meta{color:var(--cap-ink-soft);white-space:nowrap;font-size:12.5px;font-weight:600;font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.03em}.cap-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:28px;display:grid}.cap-module{background:var(--cap-surface);border:1px solid var(--cap-border);cursor:pointer;text-align:left;color:var(--cap-ink);border-radius:18px;flex-direction:column;gap:12px;padding:22px 22px 18px;font-family:inherit;transition:transform .18s,border-color .18s,background .18s;display:flex}.cap-module:hover{border-color:var(--cap-border-strong);background:var(--cap-surface-2);transform:translateY(-2px)}.cap-module.is-locked{opacity:.45;cursor:not-allowed;filter:saturate(.5)}.cap-module.is-locked:hover{background:var(--cap-surface);border-color:var(--cap-border);transform:none}.cap-module-icon{color:#fff;border:1px solid #ffffff2e;border-radius:14px;place-items:center;width:52px;height:52px;display:grid}.cap-module-num{letter-spacing:.28em;text-transform:uppercase;color:var(--cap-dim);font-size:10px;font-weight:700;font-family:var(--font-mono,ui-monospace, monospace)}.cap-module h3{color:var(--cap-ink);letter-spacing:-.01em;margin:2px 0 0;font-size:17px;font-weight:600}.cap-module p{color:var(--cap-muted);margin:0;font-size:13.5px;line-height:1.55}.cap-module-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:8px;display:flex}.cap-module-status{letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:700;font-family:var(--font-mono,ui-monospace, monospace);border-radius:999px;padding:5px 10px}.cap-status-todo{background:var(--cap-cyan-soft);color:var(--cap-cyan)}.cap-status-done{background:var(--cap-safe-soft);color:var(--cap-safe)}.cap-status-locked{color:var(--cap-dim);background:#ffffff0d}.cap-module-cta{color:var(--cap-cyan);font-size:16px;font-weight:700}.cap-lesson{background:var(--cap-surface);border:1px solid var(--cap-border);border-radius:22px;margin-top:22px;padding:36px 30px}.cap-lesson-head{align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.cap-lesson-icon{color:#fff;border:1px solid #ffffff2e;border-radius:18px;flex-shrink:0;place-items:center;width:64px;height:64px;display:grid}.cap-lesson h2{letter-spacing:-.01em;color:var(--cap-ink);margin:4px 0 0;font-size:26px;font-weight:600}.cap-body{color:var(--cap-ink-soft);margin-top:12px;font-size:16px;line-height:1.7}.cap-points{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.cap-points li{background:var(--cap-surface-2);border:1px solid var(--cap-border);color:var(--cap-ink-soft);border-radius:12px;padding:12px 14px 12px 44px;font-size:14.5px;line-height:1.55;position:relative}.cap-points li:before{content:"";background:var(--cap-cyan);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:16px;transform:translateY(-50%);box-shadow:0 0 0 4px #5ef7ff1f}.cap-tips{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.cap-tips li{background:var(--cap-safe-soft);color:#b4f0c8;border:1px solid #4ade8040;border-left:3px solid var(--cap-safe);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.55}.cap-lesson-nav{justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.cap-dots{gap:6px;display:flex}.cap-dot{background:#ffffff24;border-radius:999px;width:22px;height:4px}.cap-dot.is-on{background:var(--cap-cyan)}.cap-quiz{background:var(--cap-surface);border:1px solid var(--cap-border);border-radius:22px;margin-top:22px;padding:32px 30px}.cap-quiz h2{color:var(--cap-ink);letter-spacing:-.005em;margin:6px 0 0;font-size:22px;font-weight:600;line-height:1.4}.cap-options{gap:10px;margin-top:20px;display:grid}.cap-option{text-align:left;border:1px solid var(--cap-border);background:var(--cap-surface-2);color:var(--cap-ink);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;font-size:14.5px;line-height:1.5;transition:border-color .15s,background .15s;display:flex}.cap-option:hover{border-color:var(--cap-border-strong)}.cap-option[aria-checked=true]{border-color:var(--cap-cyan-strong);background:var(--cap-cyan-soft)}.cap-option.is-correct{border-color:var(--cap-safe);background:var(--cap-safe-soft);color:#d8f7e1}.cap-option.is-wrong{border-color:var(--cap-threat);background:var(--cap-threat-soft);color:#fde2e2}.cap-option[disabled]{cursor:default}.cap-option-marker{border:1.5px solid var(--cap-border-strong);width:22px;height:22px;color:var(--cap-muted);font-size:10px;font-weight:700;font-family:var(--font-mono,ui-monospace, monospace);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.cap-option.is-correct .cap-option-marker{border-color:var(--cap-safe);background:var(--cap-safe);color:#07140d}.cap-option.is-wrong .cap-option-marker{border-color:var(--cap-threat);background:var(--cap-threat);color:#2a0a0a}.cap-explain{border:1px solid #0000;border-radius:12px;margin-top:16px;padding:14px 16px;font-size:14px;line-height:1.6}.cap-explain.is-correct{background:var(--cap-safe-soft);color:#cdeed8;border-color:#4ade804d}.cap-explain.is-wrong{background:var(--cap-threat-soft);color:#fdd6d6;border-color:#f871714d}.cap-quiz-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.cap-pip{background:#ffffff1f;border-radius:50%;width:9px;height:9px}.cap-pip.is-correct{background:var(--cap-safe)}.cap-pip.is-wrong{background:var(--cap-threat)}.cap-result{text-align:center;background:var(--cap-surface);border:1px solid var(--cap-border);border-radius:22px;margin-top:22px;padding:48px 28px 32px}.cap-result-icon{margin:0 auto 12px;font-size:48px}.cap-result h2{color:var(--cap-ink);margin:6px 0;font-size:26px;font-weight:600}.cap-result p{max-width:460px;color:var(--cap-muted);margin:0 auto;font-size:14.5px;line-height:1.6}.cap-result-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.cap-gate{place-items:center;min-height:100svh;padding:24px;display:grid}.cap-gate-card{background:var(--cap-surface);border:1px solid var(--cap-border);text-align:center;width:min(440px,100%);color:var(--cap-ink);border-radius:22px;padding:44px 30px 28px}.cap-gate-card h1{color:var(--cap-ink);letter-spacing:-.005em;margin:6px 0 8px;font-size:22px;font-weight:600}.cap-gate-card p{max-width:340px;color:var(--cap-muted);margin:0 auto;font-size:14px;line-height:1.5}.cap-pinrow{justify-content:center;gap:8px;margin-top:28px;display:flex}.cap-pin{text-align:center;width:44px;height:56px;font-size:24px;font-family:var(--font-mono,ui-monospace, monospace);border:1px solid var(--cap-border);color:var(--cap-ink);caret-color:var(--cap-cyan);background:#ffffff0a;border-radius:12px;outline:none;transition:border-color .15s,background .15s}.cap-pin:focus{border-color:var(--cap-cyan-strong);background:var(--cap-cyan-soft)}.cap-gate-error{color:#fda4a4;margin-top:18px;font-size:13px}.cap-gate-foot{color:var(--cap-dim);letter-spacing:.22em;text-transform:uppercase;font-size:10px;font-family:var(--font-mono,ui-monospace, monospace);margin-top:28px}.cap-token{text-align:center;width:min(360px,100%);color:var(--cap-ink)}.cap-token-eyebrow{letter-spacing:.34em;text-transform:uppercase;color:var(--cap-dim);font-size:10px;font-weight:700;font-family:var(--font-mono,ui-monospace, monospace)}.cap-token-title{letter-spacing:-.005em;margin:6px 0 4px;font-size:22px;font-weight:600}.cap-token-sub{color:var(--cap-muted);margin:0;font-size:13px}.cap-token-sub code{font-family:var(--font-mono,ui-monospace, monospace);background:var(--cap-surface);border-radius:5px;padding:1px 6px;font-size:12px}.cap-token-ring{place-items:center;width:200px;height:200px;margin:36px auto 16px;display:grid;position:relative}.cap-token-ring svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.cap-token-code{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.18em;color:var(--cap-ink);font-size:40px;font-weight:600}.cap-token-secs{letter-spacing:.34em;text-transform:uppercase;color:var(--cap-dim);font-size:10px;font-family:var(--font-mono,ui-monospace, monospace);margin-top:4px}.cap-cert-wrap{border:1px solid var(--cap-border);background:#ffffff05;border-radius:18px;margin-top:18px;padding:8px}.cap-cert-wrap svg{border-radius:12px;width:100%;height:auto;display:block}.cap-cert-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.cap-lock-msg{text-align:center;color:var(--cap-dim);margin-top:16px;font-size:12.5px}@media print{body *{visibility:hidden!important}.cap-cert-wrap,.cap-cert-wrap *{visibility:visible!important}.cap-cert-wrap{position:absolute;inset:0;background:#06061a!important;margin:0!important;padding:0!important}.cap-cert-actions{display:none!important}}
