:root{--bg: #FAFAFA;--bg-2: #F4F4F4;--card: #FFFFFF;--card-hover: #F7F7F7;--text: #0A0A0A;--text-dim: #525252;--text-faint: #999999;--border: rgba(10, 10, 10, .1);--border-strong: rgba(10, 10, 10, .22);--accent: #B8FF00;--accent-soft: rgba(184, 255, 0, .18);--accent-line: rgba(184, 255, 0, .6);--radius: 4px;--radius-sm: 2px;--font-display: "Space Grotesk", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font: var(--font-display)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.icon{width:100%;height:100%;display:block}.boot{height:100%}.boot--error{display:grid;place-items:center;color:#b00020;padding:40px}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:20px 28px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.topbar__brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.01em}.topbar__logo{width:26px;height:26px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--bg);background:var(--text)}.topbar__actions{justify-self:end;display:flex;align-items:center;gap:10px}.topbar__cta{background:var(--accent);border:1px solid var(--text);color:var(--text);font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;padding:8px 14px;cursor:pointer;transition:background .15s ease,color .15s ease}.topbar__cta:hover{background:var(--text);color:var(--accent)}.topbar__logout{background:transparent;border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;padding:8px 14px;cursor:pointer;transition:background .15s ease,color .15s ease}.topbar__logout:hover{background:var(--text);color:var(--bg)}.tabs{justify-self:center;display:flex;align-items:stretch;gap:8px;position:relative}.tab{display:flex;align-items:center;gap:9px;background:transparent;border:0;cursor:pointer;color:var(--text-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;padding:10px 16px 12px;position:relative;transition:color .15s ease}.tab__icon{width:16px;height:16px}.tab:hover,.tab--active{color:var(--text)}.tab--active:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;background:var(--accent)}.content{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:40px 48px 56px;display:flex;flex-direction:column;gap:36px}.crumb{align-self:flex-start;display:flex;align-items:center;gap:12px;background:transparent;padding:0;font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim)}.crumb:before{content:"";width:24px;height:1px;background:var(--text);opacity:.3}.crumb .icon{width:14px;height:14px;color:currentColor}.browser{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 92px;align-items:start}.browser--2col{grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,2.65fr);gap:0 60px}.connectors{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:visible}.conn{stroke:var(--text);stroke-width:1;stroke-opacity:.18;transition:stroke-opacity .2s ease}.conn--active{stroke:var(--text);stroke-width:1.5;stroke-opacity:.55;stroke-dasharray:none;animation:none}.col{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px}.col__chip{align-self:flex-start;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding:0 0 0 32px;position:relative;height:16px;display:flex;align-items:center}.col__chip:before{content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:var(--text);opacity:.3}.chip--domain,.chip--scenario,.chip--task,.chip--skill{color:var(--text-dim)}.col__cards{display:flex;flex-direction:column;gap:10px}.card{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;color:var(--text);cursor:pointer;font-family:var(--font-display);transition:border-color .15s ease,background .15s ease,transform .12s ease}.card:hover{background:var(--card-hover);border-color:var(--border-strong)}.card:active{transform:translateY(1px)}.card__body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.card__name{font-size:15px;font-weight:600;line-height:1.2;letter-spacing:-.01em}.card__sub{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.card__iconbox{width:36px;height:36px;border-radius:var(--radius-sm);flex-shrink:0;display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--border)}.card__iconbox .icon{width:18px;height:18px;color:var(--text-dim)}.icon--domain,.icon--skill{color:var(--text-dim);background:var(--bg-2)}.card__chevron{width:16px;height:16px;color:var(--text-faint);flex-shrink:0}.card.is-selected{border-color:var(--text);background:var(--card);box-shadow:inset 3px 0 0 0 var(--accent)}.card--domain.is-selected,.card--scenario.is-selected,.card--task.is-selected{border-color:var(--text)}.col--preview{z-index:1}.previewpanel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.previewpanel__empty{padding:40px;text-align:center;color:var(--text-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.preview{display:flex;flex-direction:column}.preview__head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border)}.preview__bolt{width:32px;height:32px;border-radius:var(--radius-sm);flex-shrink:0;display:grid;place-items:center;color:var(--text);background:var(--accent)}.preview__bolt .icon{width:16px;height:16px}.preview__title{flex:1;min-width:0}.preview__name{font-size:16px;font-weight:600;letter-spacing:-.01em}.preview__sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-top:4px}.preview__nav{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.preview__navbtn{width:30px;height:30px;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);display:grid;place-items:center;font-size:13px;line-height:1;cursor:pointer;transition:background .12s ease,border-color .12s ease}.preview__navbtn:hover{background:var(--accent);border-color:var(--text)}.preview__navidx{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--text-dim);min-width:38px;text-align:center}.preview .player{border-radius:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:12px}.stats--3{grid-template-columns:repeat(3,1fr)}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px 22px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.stat__num{font-family:var(--font-display);font-size:44px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--text)}.stat__label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim)}.stat[data-level=domain] .stat__num,.stat[data-level=scenario] .stat__num,.stat[data-level=task] .stat__num,.stat[data-level=skill] .stat__num{color:var(--text)}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.login__card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px;display:flex;flex-direction:column}.login__brand{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding-left:32px;position:relative;margin-bottom:28px;-webkit-background-clip:initial;background-clip:initial;background:none}.login__brand:before{content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:var(--text);opacity:.3}.login__title{margin:0 0 8px;font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.login__hint{margin:0 0 26px;color:var(--text-dim);font-size:14px;line-height:1.5}.login__input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:13px 15px;color:var(--text);font-size:15px;font-family:var(--font-display);outline:none;transition:border-color .15s ease}.login__input:focus{border-color:var(--text)}.login__input--error{border-color:#b00020}.login__error{color:#b00020;font-size:13px;margin-top:10px}.login__btn{margin-top:22px;padding:14px;border:0;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--bg);cursor:pointer;background:var(--text);transition:background .15s ease}.login__btn:disabled{opacity:.4;cursor:not-allowed}.login__btn:not(:disabled):hover{background:#222}.player{aspect-ratio:16 / 9;background:#000;overflow:hidden;display:grid;place-items:center}.player video{width:100%;height:100%;object-fit:contain;background:#000}.player__empty{text-align:center;color:var(--text-dim);padding:30px;font-family:var(--font-mono);font-size:12px}.player__empty-icon{width:40px;height:40px;color:var(--text-faint);margin-bottom:14px}.player__empty p{margin:4px 0;font-size:13px;letter-spacing:.04em}.player__empty code{font-family:var(--font-mono);color:var(--text);background:var(--bg-2);padding:1px 6px;border-radius:var(--radius-sm)}.player__empty-hint{font-size:11px!important;color:var(--text-faint)}.preview__videos{background:var(--bg-2);min-width:0;display:block}.preview__videos video{width:100%;height:auto;display:block;background:#000}.preview__videos--combo video{aspect-ratio:3000 / 1080}.preview__videos--solo video{aspect-ratio:16 / 9}.preview__body{display:flex;flex-direction:column}.preview__main{display:flex;flex-direction:column;min-width:0}.caption{display:flex;flex-direction:column;height:420px;border-top:1px solid var(--border);background:var(--card);min-height:0}.caption__head{padding:14px 16px;max-height:180px;overflow-y:auto;border-bottom:1px solid var(--border);background:var(--card)}.caption__label{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding-left:32px;position:relative;margin-bottom:10px}.caption__label:before{content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:var(--text);opacity:.3}.caption__summary{margin:0;font-family:var(--font-display);font-size:14px;line-height:1.55;color:var(--text)}.caption__summary--missing{color:var(--text-faint);font-style:italic}.caption__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tag{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap}.tag--cat{color:var(--bg);background:var(--text)}.tag--task{color:var(--text);background:var(--accent)}.caption__steps{flex:1;min-height:0;overflow-y:auto;padding:12px 14px 16px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.caption__steps::-webkit-scrollbar{width:6px}.caption__steps::-webkit-scrollbar-track{background:transparent}.caption__steps::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-sm)}.step{position:relative;display:flex;align-items:stretch;gap:10px;width:100%;text-align:left;padding:10px 12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font-family:var(--font-display);transition:border-color .15s ease,background .15s ease}.step:hover{background:var(--bg-2);border-color:var(--border-strong)}.step__bar{flex-shrink:0;width:3px;background:var(--border-strong);transition:background .2s ease}.step__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.step__time{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);letter-spacing:.12em;text-transform:uppercase}.step__name{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;letter-spacing:-.005em}.step__desc{font-size:12px;line-height:1.5;color:var(--text-dim)}.step--active{background:var(--card);border-color:var(--text);box-shadow:inset 3px 0 0 0 var(--accent)}.step--active .step__bar{background:var(--accent)}.step--active .step__time{color:var(--text)}.caption__placeholder{padding:28px 18px;text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim)}.caption__placeholder--inset{padding:18px}.caption--loading .caption__placeholder,.caption--empty .caption__placeholder{color:var(--text-faint)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:grid;place-items:center;padding:24px;z-index:100;animation:modal-in .12s ease-out}@keyframes modal-in{0%{opacity:0}to{opacity:1}}.modal__card{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 48px);overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px 32px;display:flex;flex-direction:column}.modal__close{position:absolute;top:12px;right:12px;width:32px;height:32px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .12s ease,color .12s ease,border-color .12s ease}.modal__close:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.form{display:flex;flex-direction:column}.form__tag{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding-left:32px;position:relative;margin-bottom:14px}.form__tag:before{content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:var(--text);opacity:.3}.form__tag--ok{color:var(--text)}.form__tag--ok:before{background:var(--accent);opacity:1;height:2px}.form__title{margin:0 0 8px;font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.form__hint{margin:0 0 24px;color:var(--text-dim);font-size:14px;line-height:1.5}.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field--full{grid-column:1 / -1}.field__label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}.field__input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-size:14px;font-family:var(--font-display);outline:none;transition:border-color .12s ease;width:100%;min-width:0;box-sizing:border-box}.field__input:focus{border-color:var(--text)}.field__input--area{resize:vertical;min-height:96px;font-family:var(--font-display);line-height:1.5}.form__check{display:flex;align-items:center;gap:10px;margin:14px 0 4px;font-size:13px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.form__check input{width:14px;height:14px;accent-color:var(--text);cursor:pointer}.form__err{color:#b00020;font-size:13px;margin-top:12px;padding:10px 12px;border:1px solid #B00020;border-radius:var(--radius-sm);background:#b000200f}.form__btn{margin-top:18px;padding:13px;border:0;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--bg);cursor:pointer;background:var(--text);transition:background .15s ease}.form__btn:disabled{opacity:.4;cursor:not-allowed}.form__btn:not(:disabled):hover{background:#222}.form__done{padding:8px 0}.form__done p{margin:12px 0 22px;color:var(--text-dim);font-size:14px;line-height:1.55}.form__done strong{color:var(--text)}@media(max-width:540px){.modal__card{padding:36px 24px 28px}.form__grid{grid-template-columns:1fr}}@media(max-width:1100px){.browser{gap:0 48px}.browser--2col{grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,2.2fr);gap:0 40px}.content{padding:32px 28px 48px}}@media(max-width:820px){.browser,.browser--2col{grid-template-columns:1fr 1fr;gap:28px}.browser--2col .col--preview{grid-column:1 / -1}.connectors{display:none}.stats,.stats--3{grid-template-columns:1fr 1fr}}
