:root{--ls-bg: #17191F;--ls-surface: #1D2027;--ls-surface-2: #23262E;--ls-border: #2A2E37;--ls-text: #E8ECF2;--ls-text-muted: #9BA4B2;--ls-text-faint: #6B7280;--ls-accent: #2FA8DC;--ls-accent-hover: #56C4EE;--ls-accent-contrast: #06202E;--ls-accent-dim: rgba(47, 168, 220, .14);--ls-canvas-bg: #14161B;--ls-canvas-dot: rgba(255, 255, 255, .07);--ls-danger: #E5484D;color-scheme:dark}body{margin:0;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--ls-bg);color:var(--ls-text)}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--ls-border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--ls-border);border-radius:3px}*::-webkit-scrollbar-thumb:hover{background-color:var(--ls-text-faint)}*::-webkit-scrollbar-corner{background:transparent}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#080a0e99;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:var(--ls-surface);border:1px solid var(--ls-border);padding:24px;border-radius:12px;min-width:400px;color:var(--ls-text);box-shadow:0 24px 80px #0009}.modal-content h2{margin-top:0;margin-bottom:20px;color:var(--ls-text)}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--ls-text-muted)}.form-group input{width:100%;padding:8px;border:1px solid var(--ls-border);border-radius:6px;font-size:14px;background-color:var(--ls-surface-2);color:var(--ls-text)}.form-group input:focus{outline:none;border-color:var(--ls-accent);box-shadow:0 0 0 2px var(--ls-accent-dim)}.modal-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.modal-buttons button{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:background-color .2s}.modal-buttons button[type=submit]{background-color:var(--ls-accent);color:var(--ls-accent-contrast);font-weight:600}.modal-buttons button[type=submit]:hover{background-color:var(--ls-accent-hover)}.modal-buttons button[type=button]{background-color:var(--ls-surface-2);color:var(--ls-text);border:1px solid var(--ls-border)}.modal-buttons button[type=button]:hover{background-color:var(--ls-border)}.apphome{height:100vh;display:flex;flex-direction:column;background:radial-gradient(700px 300px at 80% -20%,rgba(47,168,220,.08),transparent 60%),var(--ls-bg);color:var(--ls-text)}.apphome-top{display:flex;align-items:center;gap:10px;width:calc(100% - 28px);max-width:1240px;margin:12px auto 0;box-sizing:border-box;padding:9px 14px;background:rgba(29,32,39,.9);border:1px solid var(--ls-border);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px}.apphome-logo{width:32px;height:32px;margin-right:-8px;background:url(/logo.png) center / contain no-repeat}.apphome-crumb{color:var(--ls-text-faint);font-size:12.5px}.apphome-right{margin-left:auto;display:flex;align-items:center;gap:10px}.apphome-role{font-family:Cascadia Mono,Consolas,monospace;font-size:9.5px;letter-spacing:.05em;border-radius:4px;padding:2px 9px;border:1px solid var(--ls-border);color:var(--ls-text-muted)}.apphome-role.owner{color:#56c4ee;border-color:#2fa8dc66}.apphome-user{font-size:12.5px;color:var(--ls-text-muted)}.apphome-body{flex:1;display:flex;gap:12px;width:calc(100% - 28px);max-width:1240px;margin:0 auto;box-sizing:border-box;padding:12px 0 14px;min-height:0}.apphome-side{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:3px;padding:12px 10px;background:rgba(29,32,39,.9);border:1px solid var(--ls-border);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.apphome-side-label{font-family:Cascadia Mono,Consolas,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ls-text-faint);margin:2px 8px 7px}.apphome-nav{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ls-text-muted);font-size:12.5px;font-family:inherit;cursor:pointer;text-align:left}.apphome-nav:hover{color:var(--ls-text);background:rgba(255,255,255,.04)}.apphome-nav.on{background:rgba(47,168,220,.12);color:#cfebf8;border-color:#2fa8dc40}.apphome-nav.disabled{opacity:.45;cursor:default}.apphome-nav.disabled:hover{background:transparent;color:var(--ls-text-muted)}.apphome-nav.accent{color:#56c4ee}.apphome-nav .ic{width:16px;text-align:center;color:var(--ls-text-faint)}.apphome-nav.on .ic{color:var(--ls-accent)}.apphome-nav .cnt{margin-left:auto;font-family:Cascadia Mono,Consolas,monospace;font-size:10px;color:var(--ls-text-faint)}.apphome-main{flex:1;min-width:0;padding:18px 20px;background:rgba(29,32,39,.9);border:1px solid var(--ls-border);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow-y:auto}.apphome-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px}.apphome-head h2{margin:0;font-size:18px}.apphome-sub{color:var(--ls-text-faint);font-size:11.5px}.apphome-acts{margin-left:auto;display:flex;gap:8px}.apphome-btn{border-radius:8px;padding:7px 15px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;border:none}.apphome-btn.primary{background:var(--ls-accent);color:#06202e}.apphome-btn.primary:hover{background:#56C4EE}.apphome-btn.ghost{background:transparent;border:1px solid var(--ls-border);color:var(--ls-text-muted);font-weight:400}.apphome-btn.ghost:hover{color:var(--ls-text);border-color:var(--ls-accent)}.apphome-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.pj-card{border:1px solid var(--ls-border);border-radius:10px;overflow:hidden;background:var(--ls-surface-2);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;padding:0;font-family:inherit;text-align:left;color:var(--ls-text)}.pj-card:hover{border-color:#2fa8dc8c;box-shadow:0 0 0 1px #2fa8dc40,0 0 18px #2fa8dc2e}.pj-card.new{border-style:dashed;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;color:var(--ls-text-faint);font-size:12px}.pj-card.new .plus{font-size:22px;color:var(--ls-accent)}.pj-thumb{aspect-ratio:16/9;position:relative;background:linear-gradient(140deg,#0C1526,#12233B);overflow:hidden}.pj-thumb img{width:100%;height:100%;object-fit:cover;display:block}.pj-thumb-ph{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 24%,rgba(86,196,238,.5) 24%,rgba(86,196,238,.5) 31%,transparent 31%,transparent 48%,rgba(255,255,255,.16) 48%,rgba(255,255,255,.16) 52%,transparent 52%,transparent 60%,rgba(255,255,255,.1) 60%,rgba(255,255,255,.1) 64%,transparent 64%);background-size:55% 100%;background-position:18% 0;background-repeat:no-repeat}.pj-del{position:absolute!important;top:5px;right:5px;background:rgba(13,15,19,.7)!important;color:var(--ls-text-muted)!important;opacity:0;transition:opacity .12s ease}.pj-card:hover .pj-del{opacity:1}.pj-del:hover{color:var(--ls-danger)!important}.pj-info{padding:9px 11px}.pj-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pj-meta{margin-top:4px;font-size:10.5px;display:grid;grid-template-columns:44px 1fr;gap:6px;align-items:baseline}.pj-meta-k{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ls-text-faint);opacity:.75}.pj-meta-v{color:var(--ls-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pj-stages{position:absolute;bottom:5px;left:5px;padding:1px 6px;border-radius:999px;background:rgba(13,15,19,.72);border:1px solid var(--ls-border);color:var(--ls-text-muted);font-size:9.5px;font-weight:600;white-space:nowrap}.pj-access-chip{position:absolute;bottom:5px;right:5px;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;background:rgba(13,15,19,.72);border:1px solid var(--ls-border);color:var(--ls-text-muted);font-size:9.5px;font-weight:600;white-space:nowrap;font-family:inherit;line-height:1.6}button.pj-access-chip{cursor:pointer;transition:color .12s ease,border-color .12s ease}button.pj-access-chip:hover{color:var(--ls-text);border-color:var(--ls-text-muted)}.apphome-empty{color:var(--ls-text-faint);font-size:13px;text-align:center;padding:60px 0 40px}.landing{min-height:100vh;background:radial-gradient(1100px 520px at 15% -10%,rgba(47,168,220,.15),transparent 60%),radial-gradient(900px 520px at 100% 25%,rgba(122,90,248,.1),transparent 65%),#0D0F13;color:#e8ecf2;overflow-x:hidden;position:relative}.landing .plx{will-change:transform}.landing-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px);z-index:0}.landing-orb.a{width:420px;height:420px;left:-120px;top:420px;background:radial-gradient(circle at 35% 30%,rgba(47,168,220,.26),rgba(47,168,220,.02) 70%)}.landing-orb.b{width:240px;height:240px;right:32%;top:60px;background:radial-gradient(circle at 40% 35%,rgba(122,224,255,.16),transparent 70%)}.landing-orb.c{width:150px;height:150px;right:8%;top:560px;background:radial-gradient(circle at 40% 35%,rgba(122,90,248,.22),transparent 70%)}.landing-grid-floor{position:absolute;left:0;right:0;top:480px;height:320px;pointer-events:none;opacity:.45;z-index:0;background-image:linear-gradient(rgba(86,196,238,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(86,196,238,.07) 1px,transparent 1px);background-size:42px 30px;transform:perspective(400px) rotateX(48deg) scale(1.4);transform-origin:top;-webkit-mask-image:linear-gradient(#000 30%,transparent);mask-image:linear-gradient(#000 30%,transparent)}.landing-nav{position:sticky;top:12px;z-index:20;margin:12px auto 0;max-width:1060px;display:flex;align-items:center;gap:12px;padding:10px 18px;background:rgba(29,32,39,.88);border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 28px #0000006b}.landing-logo{width:32px;height:32px;flex-shrink:0;margin-right:-10px;background:url(/logo.png) center / contain no-repeat}.landing-nav .brand{font-weight:700;font-size:15px}.landing-nav .links{margin-left:auto;display:flex;gap:22px;font-size:13px;color:#9ba4b2}.landing-nav .links a{color:inherit;text-decoration:none}.landing-nav .links a:hover{color:#e8ecf2}.landing-hero{position:relative;z-index:2;max-width:1060px;margin:0 auto;padding:88px 20px 40px;display:flex;gap:48px;align-items:flex-start}.landing-hero .copy{flex:1;min-width:0;padding-top:22px}.landing-hero h1{font-size:46px;line-height:1.12;letter-spacing:-.02em;margin:0 0 18px;font-weight:750}.landing-hero h1 em{font-style:normal;color:#56c4ee}.landing-hero .sub{color:#9ba4b2;font-size:16px;line-height:1.65;max-width:46ch;margin:0 0 26px}.landing-cta{display:flex;gap:12px}.landing-btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:9px;padding:11px 22px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.landing-btn.primary{background:#2FA8DC;color:#06202e}.landing-btn.primary:hover{background:#56C4EE}.landing-btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.14);color:#9ba4b2;font-weight:400}.landing-btn.ghost:hover{color:#e8ecf2;border-color:#ffffff4d}.login-card{width:340px;flex-shrink:0;background:rgba(29,32,39,.92);border:1px solid rgba(255,255,255,.08);border-radius:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 14px 44px #00000080;padding:26px;position:relative;z-index:3}.login-card .lc-title{font-size:17px;font-weight:700;margin:0 0 4px}.login-card .lc-sub{font-size:12px;color:#6b7280;margin:0 0 18px;line-height:1.5}.login-card .lc-label{font-size:11px;color:#6b7280;margin:0 0 5px 1px;display:block}.login-card input,.login-card textarea{width:100%;box-sizing:border-box;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e8ecf2;font-size:13.5px;font-family:inherit;padding:10px 12px;outline:none;margin-bottom:12px;transition:border-color .12s ease}.login-card input:focus,.login-card textarea:focus{border-color:#2fa8dc}.login-card textarea{resize:vertical;min-height:68px}.login-card .lc-email-row{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:9px 12px;margin-bottom:12px;font-size:13px;color:#c9cfd8}.login-card .lc-email-row button{background:none;border:none;cursor:pointer;color:#56c4ee;font-size:11.5px;font-family:inherit;padding:0}.login-card .lc-submit{width:100%;box-sizing:border-box;justify-content:center}.login-card .lc-hint{font-size:11.5px;color:#6b7280;line-height:1.55;margin-top:12px}.login-card .lc-hint button{background:none;border:none;cursor:pointer;padding:0;color:#56c4ee;font-size:11.5px;font-family:inherit}.login-card .lc-error{font-size:12px;color:#ff8589;margin:-4px 0 10px}.login-card .lc-note{font-size:12.5px;color:#9ba4b2;line-height:1.6;background:rgba(47,168,220,.07);border:1px solid rgba(47,168,220,.25);border-radius:8px;padding:10px 12px;margin-bottom:12px}.login-card .lc-success{font-size:13px;color:#7adba9;line-height:1.6}.landing-features{position:relative;z-index:2;max-width:1060px;margin:26px auto 0;padding:0 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.feature-card{background:rgba(29,32,39,.8);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px 20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.feature-card .fc-title{font-size:14.5px;font-weight:650;margin-bottom:6px}.feature-card .fc-desc{font-size:12.5px;color:#9ba4b2;line-height:1.6}.landing-contact{position:relative;z-index:2;max-width:1060px;margin:90px auto 0;padding:0 20px 90px;display:flex;gap:48px;align-items:flex-start}.landing-contact .copy{flex:1;padding-top:10px}.landing-contact h2{font-size:28px;letter-spacing:-.01em;margin:0 0 12px}.landing-contact .sub{color:#9ba4b2;font-size:14.5px;line-height:1.65;max-width:44ch}.landing-footer{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.06);padding:22px 20px;text-align:center;font-size:12px;color:#6b7280}.landing-section{position:relative;z-index:2;max-width:1060px;margin:130px auto 0;padding:0 20px}.sec-eyebrow{font-family:Cascadia Mono,Consolas,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#56c4ee;margin:0 0 10px}.landing-section h2{font-size:32px;letter-spacing:-.015em;margin:0 0 14px;font-weight:720}.landing-section .sec-sub{color:#9ba4b2;font-size:15px;line-height:1.7;max-width:64ch;margin:0 0 28px}.landing-section .sec-sub b{color:#e8ecf2;font-weight:600}.sec-split{display:flex;gap:44px;align-items:center}.sec-split>.copy{flex:1;min-width:0}.sec-split>.visual{flex:1.25;min-width:0}.sec-split .sec-sub{margin-bottom:18px}.sec-points{list-style:none;margin:0;padding:0}.sec-points li{position:relative;padding-left:22px;color:#9ba4b2;font-size:13.5px;line-height:1.65;margin-bottom:10px}.sec-points li:before{content:"";position:absolute;left:2px;top:8px;width:8px;height:8px;border-radius:2px;background:linear-gradient(135deg,#2FA8DC,#7AE0FF)}.sec-points b{color:#e8ecf2;font-weight:600}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}.mock-frame{background:#0D0F13;border:1px solid #2A2E37;border-radius:14px;overflow:hidden;box-shadow:0 24px 70px #00000080;font-size:10px;color:#e8ecf2}.mock-shell{overflow-x:auto;border-radius:14px;box-shadow:0 24px 70px #00000080}.landing .mk{position:relative;min-width:940px;height:600px;font-size:11px;overflow:hidden;border-radius:14px;background-color:#14161b;background-image:radial-gradient(circle,rgba(255,255,255,.06) 1px,transparent 1.2px);background-size:20px 20px;color:#c9cfd8}.landing .mk .glass{background:rgba(29,32,39,.9);border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.landing .mk .num{font-variant-numeric:tabular-nums}.landing .mk .ghost{opacity:.35}.landing .mk .top{position:absolute;top:12px;left:12px;right:12px;height:40px;z-index:5;display:flex;align-items:center;gap:8px;padding:0 12px}.landing .mk .logo{width:16px;height:16px;border-radius:5px;background:linear-gradient(135deg,#2FA8DC,#2065C8);flex-shrink:0}.landing .mk .qname{font-weight:600;color:#e8ecf2;font-size:11.5px;white-space:nowrap}.landing .mk .crumb{color:#6b7280;font-size:10px;white-space:nowrap}.landing .mk .spacer{flex:1}.landing .mk .btn{font-size:10px;padding:4px 11px;border-radius:7px;background:rgba(255,255,255,.07);color:#c9cfd8;white-space:nowrap}.landing .mk .btn.on{background:rgba(47,168,220,.16);color:#56c4ee}.landing .mk .btn.primary{background:#2FA8DC;color:#06202e;font-weight:700}.landing .mk .btn.saved{color:#7adba9;background:rgba(76,195,138,.14)}.landing .mk .toolrail{position:absolute;left:12px;top:68px;width:40px;padding:6px 0;z-index:5;display:flex;flex-direction:column;align-items:center;gap:2px}.landing .mk .ic{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#9ba4b2;flex-shrink:0}.landing .mk .ic.on{background:rgba(47,168,220,.18);color:#56c4ee}.landing .mk .toolrail .sep{width:18px;height:1px;background:rgba(255,255,255,.1);margin:4px 0}.landing .mk .hint{position:absolute;left:64px;top:72px;z-index:5;font-size:9px;color:#6b7280;font-family:Cascadia Mono,Consolas,monospace}.landing .mk .cvslide{position:absolute;left:50%;transform:translate(-50%,-50%);z-index:1}.landing .mk .slide{background:linear-gradient(145deg,#0B1220 0%,#101B33 60%,#0B2136 100%);border-radius:6px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:0 8%;box-shadow:0 6px 24px #00000059}.landing .mk .slide .kicker{color:#39c4ee;font-size:8px;letter-spacing:.25em;font-weight:600}.landing .mk .slide .title{color:#f2f6fa;font-weight:800;line-height:1.15;margin:5px 0 6px;letter-spacing:-.01em}.landing .mk .slide .subt{color:#8fa3b8;font-size:9px;max-width:75%}.landing .mk .slide .cta{margin-top:12px;align-self:flex-start;background:#39C4EE;color:#06202e;font-weight:700;font-size:9px;padding:5px 14px;border-radius:99px}.landing .mk .slide .glow{position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(57,196,238,.18),transparent 65%);right:-40px;bottom:-60px}.landing .mk .slide .srow{font-size:9px;color:#c9cfd8;margin-top:7px}.landing .mk .slide .srow.dim{color:#3d4a5c}.landing .mk .sel{position:absolute;border:1.5px solid #39C4EE;border-radius:2px}.landing .mk .sel i{position:absolute;width:5px;height:5px;background:#fff;border:1px solid #39C4EE;border-radius:1px}.landing .mk .sel i:nth-child(1){left:-3px;top:-3px}.landing .mk .sel i:nth-child(2){right:-3px;top:-3px}.landing .mk .sel i:nth-child(3){left:-3px;bottom:-3px}.landing .mk .sel i:nth-child(4){right:-3px;bottom:-3px}.landing .mk .mopts{display:flex;flex-direction:column;gap:6px;margin-top:10px;width:62%}.landing .mk .mchoice{border:1.5px solid rgba(255,255,255,.14);border-radius:8px;padding:7px 9px;font-size:8.5px;color:#c9cfd8}.landing .mk .mchoice.sel2{border-color:#39c4ee;box-shadow:0 0 0 3px #39c4ee26;color:#d8f1fc}.landing .mk .film{position:absolute;left:50%;transform:translate(-50%);bottom:12px;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 10px}.landing .mk .thumb{border-radius:5px;aspect-ratio:16/10;position:relative;overflow:hidden;width:76px;background:linear-gradient(140deg,#0C1526,#0E2033);border:1px solid rgba(255,255,255,.1);flex-shrink:0}.landing .mk .thumb:after{content:"";position:absolute;left:12%;top:26%;width:55%;height:6px;border-radius:2px;background:rgba(57,196,238,.75)}.landing .mk .thumb:before{content:"";position:absolute;left:12%;top:48%;width:40%;height:3px;border-radius:2px;background:rgba(255,255,255,.25);box-shadow:0 7px #ffffff2e}.landing .mk .thumb .n{position:absolute;right:4px;bottom:3px;font-size:8px;color:#ffffff8c}.landing .mk .thumb.on{outline:2px solid #2FA8DC;outline-offset:1px}.landing .mk .addstage{width:40px;align-self:stretch;border:1px dashed rgba(255,255,255,.18);border-radius:5px;display:flex;align-items:center;justify-content:center;color:#7a828f;font-size:13px}.landing .mk .props{position:absolute;right:12px;top:68px;width:176px;padding:10px;z-index:4}.landing .mk .pname{color:#e8ecf2;font-weight:600;font-size:10.5px;margin-bottom:8px;display:flex;justify-content:space-between}.landing .mk .pname span{color:#6b7280;font-weight:400;font-size:9px}.landing .mk .ptabs{display:flex;gap:4px;margin-bottom:4px}.landing .mk .ptabs span,.landing .mk .ptabs b{flex:1;text-align:center;font-size:8.5px;padding:3px 0;border-radius:5px;color:#6b7280}.landing .mk .ptabs b{background:rgba(47,168,220,.16);color:#56c4ee;font-weight:600}.landing .mk .plbl{font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;letter-spacing:.14em;color:#6b7280;text-transform:uppercase;margin:8px 0 5px}.landing .mk .prow{display:flex;gap:5px;margin-bottom:6px}.landing .mk .pfield{flex:1;border-radius:5px;padding:3px 6px;font-size:9.5px;display:flex;justify-content:space-between;background:rgba(255,255,255,.06);color:#c9cfd8}.landing .mk .pfield b{font-weight:400;opacity:.55;margin-right:6px}.landing .mk .codebtn{border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:5px 8px;margin-bottom:5px;font-size:9.5px;color:#9ba4b2;display:flex;justify-content:space-between}.landing .mk .zoomchip{position:absolute;right:12px;bottom:12px;z-index:5;padding:5px 11px;font-size:9.5px;color:#9ba4b2;display:flex;gap:8px}.landing .mk .tl{position:absolute;left:64px;right:12px;bottom:96px;height:252px;z-index:6;display:flex;flex-direction:column;overflow:hidden}.landing .mk .tl .hd{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px;font-size:10.5px}.landing .mk .tl .hd b{color:#e8ecf2}.landing .mk .tl .play{width:22px;height:22px;border-radius:50%;background:#2FA8DC;color:#06202e;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.landing .mk .tl .time{font-family:Cascadia Mono,Consolas,monospace;font-size:10px;color:#56c4ee}.landing .mk .tl .time span{color:#6b7280}.landing .mk .tl .hd .acts{margin-left:auto;display:flex;gap:6px;align-items:center}.landing .mk .tl .body{flex:1;display:flex;min-height:0;position:relative}.landing .mk .tracknames{width:150px;border-right:1px solid rgba(255,255,255,.08);padding-top:22px;flex-shrink:0}.landing .mk .tname{height:34px;display:flex;align-items:center;gap:7px;padding:0 10px;font-size:9.5px;color:#c9cfd8;border-bottom:1px solid rgba(255,255,255,.04)}.landing .mk .tname .ti{width:16px;height:16px;border-radius:4px;background:rgba(255,255,255,.07);display:inline-flex;align-items:center;justify-content:center;font-size:8.5px;color:#9ba4b2;flex-shrink:0}.landing .mk .tname.selrow{background:rgba(47,168,220,.08);color:#e8ecf2}.landing .mk .tname .eye{margin-left:auto;color:#4a505c;font-size:8px}.landing .mk .tracks{flex:1;position:relative;overflow:hidden}.landing .mk .ruler{height:22px;border-bottom:1px solid rgba(255,255,255,.08);position:relative;font-family:Cascadia Mono,Consolas,monospace;font-size:8px;color:#6b7280}.landing .mk .ruler i{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.07)}.landing .mk .ruler s{position:absolute;top:4px;text-decoration:none;transform:translate(3px)}.landing .mk .trow{height:34px;border-bottom:1px solid rgba(255,255,255,.04);position:relative}.landing .mk .tbar{position:absolute;top:7px;height:20px;border-radius:5px;background:rgba(47,168,220,.22);border:1px solid rgba(47,168,220,.45);display:flex;align-items:center;padding:0 7px;font-size:8.5px;color:#a8d5ea;white-space:nowrap;overflow:hidden}.landing .mk .tbar.seltl{background:rgba(47,168,220,.34);border-color:#56c4ee;color:#e8f7ff;box-shadow:0 0 0 2px #56c4ee2e}.landing .mk .tbar.seltl:before,.landing .mk .tbar.seltl:after{content:"";position:absolute;top:4px;bottom:4px;width:3px;border-radius:2px;background:#56C4EE}.landing .mk .tbar.seltl:before{left:2px}.landing .mk .tbar.seltl:after{right:2px}.landing .mk .tbar .fx{margin-left:6px;font-family:Cascadia Mono,Consolas,monospace;font-size:7.5px;background:rgba(0,0,0,.3);border-radius:3px;padding:0 4px;color:#56c4ee}.landing .mk .tbar.audio{background:rgba(18,120,160,.16);border-color:#2fa8dc4d;overflow:hidden}.landing .mk .wavebars{display:flex;align-items:center;gap:2px;height:100%}.landing .mk .wavebars b{width:2px;border-radius:1px;background:rgba(86,196,238,.65)}.landing .mk .playhead{position:absolute;top:0;bottom:0;width:1.5px;background:#56C4EE;z-index:3}.landing .mk .playhead:before{content:"";position:absolute;top:0;left:-4.5px;border:5px solid transparent;border-top:7px solid #56C4EE}.landing .mk .tlmark{position:absolute;bottom:-1px;width:8px;height:8px;margin-left:-4px;background:#56C4EE;transform:rotate(45deg);border-radius:2px;z-index:2}.landing .mk .tlmline{position:absolute;top:22px;bottom:0;width:1px;border-left:1px dashed rgba(86,196,238,.3);z-index:1}.landing .mk .ai{position:absolute;right:12px;top:68px;bottom:96px;width:300px;z-index:6;display:flex;flex-direction:column;overflow:hidden}.landing .mk .ai .hd{padding:9px 11px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:6px;color:#e8ecf2;font-weight:600;font-size:10.5px}.landing .mk .ai .spark{color:#56c4ee}.landing .mk .ai .tools{margin-left:auto;display:flex;gap:8px;color:#6b7280;font-size:10px}.landing .mk .ai .msgs{flex:1;padding:10px;display:flex;flex-direction:column;gap:8px;overflow:hidden}.landing .mk .msg{border-radius:8px;padding:6px 9px;font-size:9.5px;line-height:1.45;max-width:94%}.landing .mk .msg.user{background:#262B36;color:#d7dde6;align-self:flex-end}.landing .mk .msg.ai-m{background:#10222C;color:#a8d5ea;border:1px solid #1C3A4A}.landing .mk .msg.ai-m b{color:#56c4ee}.landing .mk .toolchip{align-self:flex-start;font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;color:#56c4ee;background:rgba(47,168,220,.1);border:1px solid rgba(47,168,220,.25);border-radius:6px;padding:3px 8px}.landing .mk .chatin{margin:10px;border:1px solid rgba(255,255,255,.1);background:rgba(20,22,27,.8);border-radius:8px;padding:7px 9px;color:#6b7280;font-size:9.5px;display:flex;justify-content:space-between}.landing .mk .chatin span:last-child{color:#56c4ee}.landing .mk .smap-edges{position:absolute;left:0;top:0;width:940px;height:600px;z-index:2;pointer-events:none;overflow:visible}.landing .mk .se-flow{fill:none;stroke:#6b7280;stroke-width:2}.landing .mk .se-rule{fill:none;stroke:#b98cff;stroke-width:2;stroke-dasharray:3 3}.landing .mk .se-rule.sel{stroke-width:3;filter:drop-shadow(0 0 3px #B98CFF)}.landing .mk .se-port{fill:#2fa8dc;stroke:#14161b;stroke-width:2}.landing .mk .sgroup{position:absolute;z-index:3;padding:8px;display:flex;flex-direction:column;box-sizing:border-box}.landing .mk .sgroup.random{border-style:dashed}.landing .mk .sgroup.branch{border-color:#b98cff80;border-style:dashed;background:rgba(38,30,54,.85)}.landing .mk .sghead{display:flex;align-items:center;gap:6px;margin-bottom:8px}.landing .mk .sgname{color:#e8ecf2;font-weight:600;font-size:10.5px}.landing .mk .sgbadge{margin-left:auto;font-size:8px;padding:1px 6px;border-radius:5px;background:rgba(255,255,255,.08);color:#9ba4b2}.landing .mk .sgbadge.branch{background:rgba(185,140,255,.18);color:#c7a8ff;margin-left:0}.landing .mk .sgbody{display:flex;flex-direction:column;gap:8px}.landing .mk .snode{border-radius:6px;position:relative}.landing .mk .sthumb{position:relative;height:40px;border-radius:5px;overflow:hidden;background:linear-gradient(135deg,#1a2433,#0f1826);border:1px solid rgba(255,255,255,.08)}.landing .mk .sthumb:after{content:"";position:absolute;left:10%;top:30%;width:52%;height:5px;border-radius:2px;background:rgba(255,255,255,.28)}.landing .mk .sthumb:before{content:"";position:absolute;left:10%;top:56%;width:36%;height:3px;border-radius:2px;background:rgba(255,255,255,.15)}.landing .mk .sthumb .sn{position:absolute;right:4px;bottom:3px;font-size:7.5px;color:#ffffff80}.landing .mk .slabel{margin-top:3px;font-size:8.5px;color:#9ba4b2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing .mk .snode.on .sthumb{outline:2px solid #2FA8DC;outline-offset:1px}.landing .mk .snode.on .slabel{color:#e8ecf2}.landing .mk .sedge{position:absolute;right:12px;top:64px;width:210px;padding:12px;z-index:6}.landing .mk .sedge .se-head{display:flex;justify-content:space-between;align-items:baseline;color:#e8ecf2;font-weight:600;font-size:11px;margin-bottom:10px}.landing .mk .sedge .se-head span{color:#6b7280;font-weight:400;font-size:8.5px}.landing .mk .sedge .se-fromto{display:flex;align-items:center;gap:6px;font-size:11px;color:#e8ecf2;margin-bottom:6px}.landing .mk .sedge .se-fromto i{color:#6b7280;font-style:normal}.landing .mk .sedge .se-lbl{font-family:Cascadia Mono,Consolas,monospace;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:#6b7280;margin:8px 0 3px}.landing .mk .sedge .se-chiprow{font-size:9.5px;color:#9ba4b2}.landing .mk .sedge .se-chip{font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;background:rgba(47,168,220,.14);color:#56c4ee;border-radius:4px;padding:1px 6px;margin-right:4px}.landing .mk .sedge .se-cond{font-family:Cascadia Mono,Consolas,monospace;font-size:9.5px;color:#c9cfd8}.landing .mk .sedge .se-do{font-size:9.5px;color:#c9cfd8}.landing .mk .sedge .se-do.on{color:#56c4ee;font-weight:600}.landing .mk .sedge .se-btns{display:flex;flex-direction:column;gap:6px;margin-top:14px}.landing .mk .sedge .se-btn{text-align:center;font-size:9.5px;padding:5px 0;border-radius:6px;border:1px solid rgba(255,255,255,.14);color:#c9cfd8}.landing .mk .sedge .se-btn.danger{border-color:#e25a5a66;color:#e88a8a}.landing .mk-home{height:545px}.landing .mk .mavatar{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#7A5AF8,#2FA8DC);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:700}.landing .mk-home .home-side{position:absolute;left:12px;top:68px;bottom:12px;width:196px;padding:10px;display:flex;flex-direction:column;gap:2px}.landing .mk-home .hs-item{display:flex;justify-content:space-between;padding:7px 10px;border-radius:7px;color:#9ba4b2;font-size:10.5px}.landing .mk-home .hs-item span{color:#5a6270}.landing .mk-home .hs-item.on{background:rgba(47,168,220,.14);color:#56c4ee}.landing .mk-home .hs-item.on span{color:#56c4ee}.landing .mk-home .hs-sep{height:1px;background:rgba(255,255,255,.08);margin:6px 4px}.landing .mk-home .home-main{position:absolute;left:224px;right:12px;top:68px;bottom:12px;display:flex;flex-direction:column}.landing .mk-home .hm-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.landing .mk-home .hm-head b{color:#e8ecf2;font-size:12.5px;margin-right:auto}.landing .mk-home .hm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-content:start}.landing .mk-home .pcard{background:rgba(29,32,39,.9);border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden}.landing .mk-home .pcard .prev{aspect-ratio:16/9;position:relative}.landing .mk-home .pcard .prev:after{content:"";position:absolute;left:10%;top:24%;width:50%;height:7px;border-radius:2px;background:rgba(255,255,255,.35)}.landing .mk-home .pcard .prev:before{content:"";position:absolute;left:10%;top:48%;width:36%;height:4px;border-radius:2px;background:rgba(255,255,255,.18);box-shadow:0 9px #ffffff1f}.landing .mk-home .pcard .pmeta{padding:7px 10px 9px}.landing .mk-home .pcard .pmeta b{display:block;color:#e8ecf2;font-size:10px;font-weight:600}.landing .mk-home .pcard .pmeta span{color:#6b7280;font-size:8.5px}.teams-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.sec-points.mt{margin-top:22px;max-width:780px}.el-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.el-card{background:rgba(29,32,39,.8);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:13px 15px;transition:border-color .15s ease,transform .15s ease}.el-card:hover{border-color:#2fa8dc80;transform:translateY(-2px)}.el-card .ei{font-size:15px;margin-bottom:7px;color:#56c4ee}.el-card .en{font-size:13px;font-weight:650;margin-bottom:3px}.el-card .ed{font-size:11px;color:#6b7280;line-height:1.5}.mock-code{display:flex;flex-direction:column}.mock-code .hd{padding:9px 13px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:8px;font-size:10.5px;color:#9ba4b2}.mock-code .hd b{color:#e8ecf2}.mock-code .hd .spacer{flex:1}.mock-code .lang{font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;color:#6b7280;border:1px solid rgba(255,255,255,.12);border-radius:5px;padding:1px 6px}.mock-code .mbtn{font-size:9.5px;padding:3px 10px;border-radius:6px;background:rgba(255,255,255,.07);color:#c9cfd8}.mock-code .mbtn.primary{background:#2FA8DC;color:#06202e;font-weight:700}.mock-code .body2{display:flex;min-height:0}.mock-code .code{flex:1;padding:12px 0;font-family:Cascadia Mono,Consolas,monospace;font-size:10.5px;line-height:1.85;background:#14161B;overflow:hidden}.mock-code .ln{display:flex}.mock-code .ln .no{width:36px;text-align:right;padding-right:13px;color:#4a505c;flex-shrink:0}.mock-code .k{color:#c586c0}.mock-code .f{color:#dcdcaa}.mock-code .s{color:#ce9178}.mock-code .c{color:#6a9955}.mock-code .v{color:#9cdcfe}.mock-code .p{color:#d4d4d4}.mock-code .nmb{color:#b5cea8}.mock-code .snips{width:176px;border-left:1px solid rgba(255,255,255,.08);padding:12px;overflow:hidden}.mock-code .plbl2{font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#6b7280;margin-bottom:7px}.mock-code .snip{font-family:Cascadia Mono,Consolas,monospace;font-size:9px;color:#9ba4b2;background:rgba(255,255,255,.05);border-radius:5px;padding:4px 8px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mock-code .snip b{color:#56c4ee;font-weight:400}.mock-review{display:flex;flex-direction:column;height:330px}.mock-review .rv-top{flex:none;display:flex;align-items:center;gap:9px;padding:0 12px;height:34px;background:rgba(29,32,39,.9);border-bottom:1px solid rgba(255,255,255,.08)}.mock-review .rv-logo{width:14px;height:14px;border-radius:4px;flex-shrink:0;background:linear-gradient(135deg,#2FA8DC,#2065C8)}.mock-review .rv-top b{color:#e8ecf2;font-size:11px;white-space:nowrap}.mock-review .rv-crumb{color:#6b7280;font-size:9.5px;white-space:nowrap}.mock-review .rv-who{margin-left:auto;color:#6b7280;font-size:9px;white-space:nowrap}.mock-review .rv-body{flex:1;display:flex;min-height:0}.mock-review .rv-stage{flex:1;min-width:0;display:flex;flex-direction:column;background-color:#14161b;background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1.2px);background-size:18px 18px}.mock-review .rv-slide{flex:1;margin:12px;border-radius:8px;padding:14px 16px;position:relative;overflow:hidden;background:linear-gradient(135deg,#0C1526,#12233B);border:1px solid rgba(255,255,255,.07)}.mock-review .rv-kicker{color:#39c4ee;font-size:7.5px;letter-spacing:.25em;font-weight:600}.mock-review .rv-title{color:#f2f6fa;font-weight:800;font-size:15px;line-height:1.15;margin:6px 0 5px;letter-spacing:-.01em}.mock-review .rv-subt{color:#8fa3b8;font-size:9px;max-width:80%}.mock-review .rv-glow{position:absolute;right:-40px;bottom:-60px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(47,168,220,.3),transparent 70%)}.mock-review .rv-nav{flex:none;height:30px;display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:0 12px;background:rgba(29,32,39,.9);border-top:1px solid rgba(255,255,255,.08)}.mock-review .rv-nav span{font-size:9px;padding:3px 9px;border-radius:6px;background:rgba(255,255,255,.06);color:#9ba4b2}.mock-review .rv-nav span.on{background:#2FA8DC;color:#06202e;font-weight:700}.mock-review .rv-panel{flex:none;width:178px;display:flex;flex-direction:column;gap:6px;padding:9px;background:rgba(29,32,39,.9);border-left:1px solid rgba(255,255,255,.08)}.mock-review .rv-phead{color:#e8ecf2;font-size:9.5px;font-weight:600}.mock-review .rv-phead span{color:#6b7280;font-weight:400}.mock-review .rv-c{border-radius:7px;padding:6px 7px;font-size:8.5px;line-height:1.5;color:#c9cfd8;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.mock-review .rv-c.author{margin-left:10px;background:rgba(47,168,220,.1);border-color:#2fa8dc59}.mock-review .rv-c.done{opacity:.55}.mock-review .rv-cmeta{display:flex;align-items:baseline;gap:4px;margin-bottom:2px}.mock-review .rv-cmeta b{color:#e8ecf2;font-size:8.5px;font-weight:600}.mock-review .rv-cmeta i{color:#56c4ee;font-style:normal;font-size:8px}.mock-review .rv-cmeta em{color:#7adba9;font-style:normal;font-size:8px}.mock-review .rv-cmeta span{margin-left:auto;color:#6b7280;font-size:7.5px;white-space:nowrap}.mock-review .rv-input{margin-top:auto;display:flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:6px 7px;background:rgba(20,22,27,.8);color:#5a6270;font-size:8.5px}.mock-review .rv-post{margin-left:auto;background:#2FA8DC;color:#06202e;font-weight:700;border-radius:5px;padding:2px 8px}.mock-score{padding:20px;display:flex;gap:22px;align-items:center}.score-ring{width:110px;height:110px;border-radius:50%;flex-shrink:0;position:relative;background:conic-gradient(#2FA8DC 0 84%,rgba(255,255,255,.07) 84% 100%)}.score-ring:before{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border-radius:50%;background:#14161B}.score-ring span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:21px;font-weight:750}.score-ring small{font-size:8px;color:#6b7280;font-weight:400}.lms-rows{flex:1}.lms-row{display:flex;justify-content:space-between;padding:7px 4px;font-size:11px;border-bottom:1px solid rgba(255,255,255,.05);color:#9ba4b2}.lms-row code{font-family:Cascadia Mono,Consolas,monospace;font-size:10px;color:#c9cfd8}.lms-row .val{color:#7adba9;font-weight:600}@media (max-width: 900px){.landing-hero,.landing-contact,.sec-split{flex-direction:column}.login-card{width:100%;box-sizing:border-box}.landing-features,.el-grid,.teams-cards{grid-template-columns:1fr 1fr}.landing-hero h1{font-size:34px}.landing-section h2{font-size:26px}}.course-editor{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--ls-bg);position:relative}.editor-content{display:flex;flex:1;overflow:hidden;position:relative;background-color:var(--ls-canvas-bg);background-image:radial-gradient(circle,var(--ls-canvas-dot) 1.3px,transparent 1.4px);background-size:22px 22px;background-position:-11px -11px}.editor-content.panels-hidden .tool-rail,.editor-content.panels-hidden .filmstrip,.editor-content.panels-hidden .right-panel,.editor-content.panels-hidden .editor-drawer,.editor-content.panels-hidden .agent-overlay,.editor-content.panels-hidden .sidebar-resizer--right{display:none}.editor-drawer{position:absolute;left:12px;right:12px;bottom:124px;z-index:7;display:flex;flex-direction:column;overflow:hidden;background-color:#1d2027f0;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.editor-drawer-grip{height:7px;flex-shrink:0;cursor:ns-resize;position:relative}.editor-drawer-grip:after{content:"";position:absolute;left:50%;top:3px;transform:translate(-50%);width:44px;height:3px;border-radius:2px;background-color:var(--ls-border)}.editor-drawer-grip:hover:after{background-color:var(--ls-accent)}.agent-overlay{position:absolute;top:68px;right:12px;bottom:124px;width:400px;max-width:calc(100% - 24px);z-index:8;display:flex;flex-direction:column;overflow:hidden;background-color:#1d2027f0;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.agent-overlay .agent-panel,.editor-drawer .code-editor-panel,.editor-drawer .timeline-panel{background-color:transparent}.drawer-tabs{display:flex;gap:4px;padding:4px 12px 0;flex-shrink:0}.drawer-tabs button{background:transparent;border:none;border-radius:6px 6px 0 0;padding:4px 14px;font-size:11px;color:var(--ls-text-muted);cursor:pointer}.drawer-tabs button.on{background-color:#2fa8dc24;color:var(--ls-accent-hover);font-weight:600}.timeline-panel{flex:1;min-height:0;display:flex;flex-direction:column}.tl-time{font-family:Cascadia Mono,Consolas,monospace;font-size:11px;color:var(--ls-accent-hover);font-variant-numeric:tabular-nums;white-space:nowrap}.tl-time span{color:var(--ls-text-faint)}.tl-body{flex:1;min-height:0;display:flex;overflow:auto;align-items:flex-start}.tl-names{width:150px;flex-shrink:0;min-height:100%;border-right:1px solid var(--ls-border);position:sticky;left:0;z-index:5;background-color:var(--ls-surface)}.tl-names-spacer{height:22px;border-bottom:1px solid var(--ls-border);position:sticky;top:0;z-index:1;background-color:var(--ls-surface)}.tl-name{height:32px;display:flex;align-items:center;gap:7px;padding:0 10px;font-size:11px;color:var(--ls-text-muted);border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;white-space:nowrap}.tl-name.selected{background-color:#2fa8dc1a;color:var(--ls-text)}.tl-drag-clone .tl-name{background-color:var(--ls-surface-2);border:1px solid var(--ls-border);border-radius:6px;box-shadow:0 4px 16px #0006;color:var(--ls-text)}.tl-drag{display:inline-flex;align-items:center;margin-left:-6px;margin-right:-3px;color:var(--ls-text-faint);flex-shrink:0;cursor:grab}.tl-name:hover .tl-drag{color:var(--ls-text-muted)}.tl-glyph{width:17px;height:17px;border-radius:4px;background-color:#ffffff12;display:inline-flex;align-items:center;justify-content:center;font-size:9px;color:var(--ls-text-muted);flex-shrink:0}.tl-name-text{overflow:hidden;text-overflow:ellipsis}.tl-lock{margin-left:auto;font-family:Cascadia Mono,Consolas,monospace;font-size:8px;letter-spacing:.08em;color:var(--ls-text-faint);border:1px solid var(--ls-border);border-radius:4px;padding:0 4px}.tl-tracks{flex:1;min-width:0;min-height:100%;position:relative;overflow-x:clip}.tl-ruler{height:22px;border-bottom:1px solid var(--ls-border);position:sticky;top:0;z-index:4;background-color:var(--ls-surface);cursor:col-resize;font-family:Cascadia Mono,Consolas,monospace;font-size:8.5px;color:var(--ls-text-faint);-webkit-user-select:none;user-select:none}.tl-ruler i{position:absolute;top:0;bottom:0;width:1px;background-color:#ffffff12}.tl-ruler s{position:absolute;top:4px;text-decoration:none;transform:translate(4px)}.tl-row{height:32px;border-bottom:1px solid rgba(255,255,255,.04);position:relative}.tl-bar{position:absolute;top:6px;bottom:6px;border-radius:5px;background-color:#2fa8dc33;border:1px solid rgba(47,168,220,.45);cursor:grab;display:flex;align-items:center;padding:0 8px;overflow:hidden}.tl-bar:not(.audio):before,.tl-bar:not(.audio):after{content:"";position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize}.tl-bar:not(.audio):before{left:0}.tl-bar:not(.audio):after{right:0}.tl-bar:hover{background-color:#2fa8dc47}.tl-bar.selected{background-color:#2fa8dc57;border-color:var(--ls-accent-hover);box-shadow:0 0 0 2px #56c4ee2e}.tl-bar.audio{cursor:default;background-color:#1278a024;border-color:#2fa8dc4d;padding:0 4px}.tl-bar-label{font-family:Cascadia Mono,Consolas,monospace;font-size:9px;color:#a8d5ea;white-space:nowrap;display:flex;align-items:center;gap:6px;pointer-events:none}.tl-fx{font-style:normal;font-size:8px;background-color:#00000059;border-radius:3px;padding:0 5px;color:var(--ls-accent-hover)}.tl-motion{position:absolute;bottom:2px;height:3px;border-radius:2px;background-color:var(--ls-accent-hover);opacity:.75;pointer-events:auto}.tl-wave{width:100%;height:100%;display:block;pointer-events:none}.tl-marker{position:absolute;bottom:-1px;width:9px;height:9px;margin-left:-4.5px;padding:0;border:none;background-color:var(--ls-accent-hover);transform:rotate(45deg);border-radius:2px;cursor:pointer;z-index:2}.tl-marker:hover{background-color:var(--ls-danger)}.tl-trigger{position:absolute;bottom:-2px;width:11px;height:11px;margin-left:-5.5px;padding:0;border:1px solid rgba(0,0,0,.35);background-color:#a855f7;transform:rotate(45deg);border-radius:2px;cursor:ew-resize;z-index:4;box-shadow:0 1px 3px #0006}.tl-trigger:hover{background-color:#c084fc}.tl-trigger-flag{margin-left:auto;font-size:10px;line-height:1;color:#c084fc;flex-shrink:0}.tl-marker-line{position:absolute;top:22px;bottom:0;width:1px;border-left:1px dashed rgba(86,196,238,.3);pointer-events:none;z-index:1}.tl-loop-chip{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:Cascadia Mono,Consolas,monospace;font-size:8px;letter-spacing:.08em;background-color:#00000073;border-radius:3px;padding:1px 5px;color:var(--ls-accent-hover);pointer-events:none}.tl-playhead{position:absolute;top:0;bottom:0;width:1.5px;background-color:var(--ls-accent-hover);z-index:4;pointer-events:none}.tl-playhead-head{position:absolute;top:0;margin-left:-4.5px;border:5px solid transparent;border-top:7px solid var(--ls-accent-hover);pointer-events:none;z-index:3}.glass-panel{background-color:#1d2027e6;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.toolbar-group{display:flex;align-items:center;gap:2px;padding:3px;background-color:var(--ls-surface-2);border-radius:10px}.tool-rail{width:48px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:2px;overflow-y:auto;align-self:flex-start;max-height:calc(100% - 84px);margin:72px 0 12px 12px;background-color:#1d2027e6;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.tool-rail-sep{width:20px;height:1px;background-color:var(--ls-border);margin:6px 0;flex-shrink:0}.editor-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.filmstrip{position:absolute;bottom:12px;left:50%;transform:translate(-50%);max-width:calc(100% - 360px);z-index:6;padding:8px 10px;background-color:#1d2027e6;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b;display:flex;align-items:stretch;gap:8px}.filmstrip-list{display:flex;align-items:stretch;gap:8px;overflow-x:auto;overflow-y:hidden;padding:2px;min-width:0}.filmstrip-list.dragging-over{background-color:#ffffff0a;border-radius:8px}.film-item .stage-thumb{height:64px}.film-item{position:relative;width:118px;flex-shrink:0;cursor:pointer;padding:5px 5px 3px;background-color:var(--ls-surface-2);border:1px solid var(--ls-border);border-radius:8px;transition:border-color .15s ease,background-color .15s ease}.film-item.active{background-color:var(--ls-accent-dim);border-color:var(--ls-accent)}.film-item:hover:not(.active){background-color:var(--ls-border)}.film-item.dragging{opacity:.85;border:1px dashed var(--ls-text-faint);box-shadow:0 4px 16px #0006}.film-item-name{margin-top:3px;font-size:10px;color:var(--ls-text-muted);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none}.film-item.active .film-item-name{color:var(--ls-text)}.film-review-badge{position:absolute;top:8px;left:8px;min-width:15px;padding:1px 4px;border-radius:7px;background-color:var(--ls-accent);color:var(--ls-accent-contrast);font-size:10px;font-weight:600;line-height:13px;text-align:center;font-variant-numeric:tabular-nums}.film-menu-button{position:absolute!important;top:7px;right:7px;padding:1px!important;background-color:#0000008c!important;color:#fff!important;opacity:0;transition:opacity .15s ease}.film-item:hover .film-menu-button{opacity:1}.film-add{width:44px;flex-shrink:0;align-self:stretch;margin:2px 0;border:1px dashed var(--ls-text-faint);border-radius:8px;background:transparent;color:var(--ls-text-muted);font-size:18px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.film-add:hover{border-color:var(--ls-accent);color:var(--ls-accent)}.stages-sidebar{width:250px;flex-shrink:0;background-color:var(--ls-surface);padding:16px;border-right:1px solid var(--ls-border);display:flex;flex-direction:column;height:calc(100vh - 50px);overflow:hidden}.stages-list{flex-grow:1;display:flex;flex-direction:column;gap:10px;margin-top:20px;padding:8px;overflow-y:auto;max-height:calc(100vh - 32px)}.stages-list.dragging-over{background-color:#ffffff0a}.stage-item{display:block;cursor:pointer;position:relative;padding:8px;margin-bottom:8px;background-color:var(--ls-surface-2);border:1px solid var(--ls-border);border-radius:8px;color:var(--ls-text);transition:all .2s ease}.stage-thumb{position:relative;width:100%;overflow:hidden;border-radius:5px;border:1px solid var(--ls-border);background-size:cover;background-position:center}.stage-thumb-num{position:absolute;right:4px;bottom:2px;font-size:10px;color:#ffffffb3;text-shadow:0 1px 2px rgba(0,0,0,.8);font-variant-numeric:tabular-nums}.stage-item-footer{display:flex;align-items:center;gap:6px;margin-top:6px}.stage-item-footer span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;-webkit-user-select:none;user-select:none}.stage-item.active{background-color:var(--ls-accent-dim);border-color:var(--ls-accent)}.stage-item:hover:not(.active){background-color:var(--ls-border)}.stage-item.dragging{opacity:.85;border:1px dashed var(--ls-text-faint);box-shadow:0 4px 16px #0006}.drag-handle{cursor:grab;color:var(--ls-text-faint);display:flex;align-items:center}.drag-handle:active{cursor:grabbing}.stage-menu-button{opacity:.5;border:none;background:none;cursor:pointer;padding:4px;margin-left:8px}.stage-menu-button:hover{opacity:1}.add-stage-btn{margin-top:15px;padding:8px;width:100%;background-color:var(--ls-accent);color:var(--ls-accent-contrast);font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.add-stage-btn:hover{background-color:var(--ls-accent-hover)}.editor-center{flex:1;min-width:0;display:flex;flex-direction:row;overflow:hidden}.editor-canvas-pane{flex:1;min-width:0;display:flex;position:relative;isolation:isolate}.canvas-zoom-pill{position:absolute;bottom:14px;right:14px;display:flex;align-items:center;gap:2px;background-color:#1d2027e6;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:99px;padding:3px 6px;z-index:20;box-shadow:0 4px 16px #00000059}.canvas-pan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;cursor:grab}.canvas-pan-overlay:active{cursor:grabbing}.canvas-hotkey-hint{position:absolute;left:14px;top:68px;z-index:5;font-family:Cascadia Mono,Consolas,monospace;font-size:10px;color:var(--ls-text-faint);pointer-events:none;-webkit-user-select:none;user-select:none}.canvas-zoom-pill button{background:transparent;border:none;color:var(--ls-text-muted);min-width:26px;height:22px;border-radius:99px;cursor:pointer;font-size:13px;padding:0 6px}.canvas-zoom-pill button:hover{background-color:var(--ls-surface-2);color:var(--ls-text)}.canvas-zoom-pill .zoom-value{min-width:44px;text-align:center;font-size:11.5px;color:var(--ls-text);font-variant-numeric:tabular-nums;cursor:pointer}.editor-split-resizer{flex:0 0 6px;cursor:col-resize;background-color:var(--ls-border);position:relative;z-index:5;transition:background .15s ease}.editor-split-resizer:hover,.editor-split-resizer:active{background-color:var(--ls-accent)}.editor-pane{flex-shrink:0;min-width:0;display:flex}.code-editor-panel{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;background-color:var(--ls-bg)}.code-editor-head{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 14px;color:var(--ls-text);border-bottom:1px solid var(--ls-border);flex-shrink:0}.code-editor-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.code-editor-lang{font-family:Cascadia Mono,Consolas,monospace;font-size:10px;color:var(--ls-text-muted);border:1px solid var(--ls-border);border-radius:5px;padding:1px 7px;flex-shrink:0}.code-editor-hint{font-size:11px;color:var(--ls-text-faint);white-space:nowrap}.code-editor-actions{margin-left:auto;display:flex;align-items:center;gap:6px;flex-shrink:0}.code-editor-body{flex:1;min-height:0;display:flex}.code-snips{width:230px;flex-shrink:0;border-left:1px solid var(--ls-border);padding:10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--ls-border) transparent}.code-snips::-webkit-scrollbar{width:6px}.code-snips::-webkit-scrollbar-track{background:transparent}.code-snips::-webkit-scrollbar-thumb{background-color:var(--ls-border);border-radius:3px}.code-snips-label{font-family:Cascadia Mono,Consolas,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ls-text-faint);margin-bottom:6px}.code-snip{display:block;width:100%;text-align:left;font-family:Cascadia Mono,Consolas,monospace;font-size:10.5px;color:var(--ls-text-muted);background-color:#ffffff0d;border:none;border-radius:5px;padding:4px 8px;margin-bottom:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .15s ease}.code-snip:hover{background-color:#2fa8dc24}.code-snip b{color:var(--ls-accent-hover);font-weight:400}.code-snip span{opacity:.6}.agent-panel{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;background-color:var(--ls-bg)}.agent-messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.agent-empty{color:var(--ls-text-faint);font-size:12.5px;line-height:1.7;text-align:center;margin:auto}.agent-msg{border-radius:10px;padding:7px 11px;font-size:13px;line-height:1.5;max-width:92%;white-space:pre-wrap;word-break:break-word}.agent-msg.user{background-color:var(--ls-surface-2);color:var(--ls-text);align-self:flex-end}.agent-msg.ai{background-color:#2fa8dc14;border:1px solid rgba(47,168,220,.22);color:var(--ls-text);align-self:flex-start}.agent-tool{align-self:flex-start;font-size:11.5px;font-family:Cascadia Mono,Consolas,monospace;color:var(--ls-accent-hover);background-color:#2fa8dc1a;border-radius:6px;padding:2px 8px}.agent-tool.failed{color:var(--ls-danger);background-color:#e5484d1f}.agent-tool-shot{align-self:flex-start;max-width:100%;max-height:120px;border:1px solid var(--ls-border);border-radius:6px;cursor:zoom-in}.agent-error{color:var(--ls-danger);font-size:12px;padding:6px 10px;border:1px solid rgba(229,72,77,.4);border-radius:8px}.agent-input-row{display:flex;align-items:flex-end;gap:6px;padding:10px;border-top:1px solid var(--ls-border)}.agent-input{flex:1;resize:none;background-color:var(--ls-surface);border:1px solid var(--ls-border);border-radius:8px;color:var(--ls-text);font-family:inherit;font-size:13px;line-height:1.45;padding:8px 10px;outline:none;max-height:170px;overflow-y:hidden}.agent-messages,.agent-input{scrollbar-width:thin;scrollbar-color:var(--ls-border) transparent}.agent-messages::-webkit-scrollbar,.agent-input::-webkit-scrollbar{width:6px}.agent-messages::-webkit-scrollbar-track,.agent-input::-webkit-scrollbar-track{background:transparent}.agent-messages::-webkit-scrollbar-thumb,.agent-input::-webkit-scrollbar-thumb{background-color:var(--ls-border);border-radius:3px}.agent-messages::-webkit-scrollbar-thumb:hover,.agent-input::-webkit-scrollbar-thumb:hover{background-color:var(--ls-text-faint)}.agent-input:focus{border-color:var(--ls-accent)}.canvas-area{flex:1;background-color:var(--ls-canvas-bg);background-image:radial-gradient(circle,var(--ls-canvas-dot) 1.3px,transparent 1.4px);background-size:22px 22px;background-position:-11px -11px;padding:20px;overflow:auto;min-width:0;display:block;scrollbar-width:none}.canvas-area::-webkit-scrollbar{display:none}.sidebar-resizer{flex:0 0 6px;width:6px;cursor:col-resize;background-color:transparent;position:relative;z-index:5;transition:background-color .15s ease}.sidebar-resizer:hover,.sidebar-resizer:active{background-color:var(--ls-accent)}.canvas-resize-grip{position:absolute;right:-7px;bottom:-7px;width:18px;height:18px;border-radius:4px;background-color:var(--ls-accent);border:2px solid var(--ls-canvas-bg);box-shadow:0 1px 4px #00000080;cursor:nwse-resize;z-index:10}.canvas-resize-grip:hover{background-color:var(--ls-accent-hover);transform:scale(1.12)}.canvas-size-badge{position:absolute;bottom:22px;right:0;white-space:nowrap;font-size:11px;font-family:Cascadia Mono,Consolas,monospace;font-variant-numeric:tabular-nums;color:var(--ls-accent-contrast);background-color:var(--ls-accent);padding:2px 8px;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .15s ease}.canvas-resize-grip:hover .canvas-size-badge,.canvas-resize-grip.resizing .canvas-size-badge{opacity:1}.canvas-resize-grip.resizing{background-color:var(--ls-accent-hover);transform:scale(1.12)}.canvas-area .konva-content{margin:20vh auto;position:relative;overflow:visible}.canvas-area .ls-slide-css{overflow:hidden}.canvas-area .konva-content{isolation:isolate}.stage-container{background-color:#fff;position:relative;box-shadow:0 4px 24px #00000080;border-radius:4px}.stage-container:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:white}.stage-container canvas{position:relative;z-index:1;display:block}.react-player{position:absolute;top:0;left:0}.right-panel{display:flex;flex-direction:column;width:300px;flex-shrink:0;overflow-y:auto;padding:10px;gap:10px;align-self:flex-start;max-height:calc(100% - 128px);margin:72px 12px 12px 0;background-color:#1d2027e6;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 28px #0000006b}.properties-panel{padding:8px}.no-selection{color:var(--ls-text-faint);text-align:center;padding:20px;font-size:12px}.pp-root .MuiInputLabel-root{position:static;transform:none;transition:color .12s ease;font-size:10.5px;line-height:1.2;color:var(--ls-text-faint);margin:0 0 3px 1px;pointer-events:none;max-width:none}.pp-root .MuiInputLabel-root.Mui-focused{color:var(--ls-accent)}.pp-root .MuiOutlinedInput-root{font-size:12px;border-radius:6px;background:rgba(255,255,255,.06)}.pp-root .MuiOutlinedInput-notchedOutline{border-color:transparent;transition:border-color .12s ease}.pp-root .MuiOutlinedInput-notchedOutline legend{display:none}.pp-root .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:var(--ls-border)}.pp-root .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--ls-accent);border-width:1px}.pp-root .MuiOutlinedInput-input{padding:5px 8px}.pp-root .MuiOutlinedInput-input[type=number]{text-align:right}.pp-root input[type=number]::-webkit-outer-spin-button,.pp-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pp-root .MuiOutlinedInput-input[type=color]{height:24px;padding:3px 5px;cursor:pointer}.pp-root .MuiInputBase-multiline{padding:6px 8px}.pp-root .MuiInputBase-multiline .MuiOutlinedInput-input{padding:0}.pp-root .MuiSelect-select.MuiOutlinedInput-input{padding-right:26px;min-height:0}.pp-root .MuiSelect-icon{font-size:18px;color:var(--ls-text-faint)}.pp-root .MuiFormControlLabel-label{font-size:12px;color:var(--ls-text-muted)}.property-group{margin-bottom:15px}.property-group label{display:block;margin-bottom:5px;color:var(--ls-text-muted);font-size:14px}.property-group input{width:100%;padding:8px;border:1px solid var(--ls-border);border-radius:6px;font-size:14px;background-color:var(--ls-surface-2);color:var(--ls-text)}.property-group input:focus,.property-group select:focus{outline:none;border-color:var(--ls-accent)}.property-group select{width:100%;padding:8px;border:1px solid var(--ls-border);border-radius:6px;font-size:14px;background-color:var(--ls-surface-2);color:var(--ls-text)}.property-group select option{padding:8px;font-size:14px}.property-row{display:flex;gap:10px}.property-row input{width:50%}input[type=color]{height:40px;padding:2px}.properties-panel h3{margin:0 0 20px;padding-bottom:10px;border-bottom:2px solid var(--ls-border);color:var(--ls-text);text-transform:capitalize}.properties-panel input[type=file]{width:100%;padding:8px;border:1px solid var(--ls-border);border-radius:6px;font-size:14px;background-color:var(--ls-surface-2);color:var(--ls-text-muted);cursor:pointer;display:block}.property-group input[type=color]{width:100%;height:40px;padding:2px;border:1px solid var(--ls-border);border-radius:6px;background-color:var(--ls-surface-2)}.delete-button{width:100%;padding:8px;background-color:transparent;color:var(--ls-danger);border:1px solid var(--ls-danger);border-radius:6px;cursor:pointer;margin-bottom:20px;transition:background-color .2s,color .2s}.delete-button:hover{background-color:var(--ls-danger);color:#fff}.clear-image-btn{margin-top:8px;padding:4px 8px;background-color:transparent;color:var(--ls-danger);border:1px solid var(--ls-danger);border-radius:6px;cursor:pointer;font-size:12px;width:100%}.clear-image-btn:hover{background-color:var(--ls-danger);color:#fff}.property-group img{max-width:100%;margin-top:8px;border:1px solid var(--ls-border);border-radius:6px}.image-upload-container{display:flex;flex-direction:column;gap:10px}.image-preview{display:flex;flex-direction:column;gap:8px;margin-top:8px}.image-preview img{width:100%;height:auto;border-radius:6px;border:1px solid var(--ls-border)}.properties-panel input[type=file]::file-selector-button{background-color:var(--ls-surface-2);color:var(--ls-text);border:1px solid var(--ls-border);padding:6px 12px;border-radius:6px;cursor:pointer;margin-right:8px}.properties-panel input[type=file]::file-selector-button:hover{border-color:var(--ls-accent)}.elements-list{padding:8px}.elements-container{display:flex;flex-direction:column;gap:8px}.element-item{display:flex;align-items:center;gap:10px;padding:8px;background-color:var(--ls-surface-2);border:1px solid var(--ls-border);border-radius:8px;color:var(--ls-text);cursor:pointer;transition:all .2s}.element-item:hover{background-color:var(--ls-border)}.element-item.active{background-color:var(--ls-accent-dim);border-color:var(--ls-accent)}.element-index{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--ls-border);border-radius:12px;font-size:12px;color:var(--ls-text-muted)}.element-item.active .element-index{background-color:var(--ls-accent-dim);color:var(--ls-accent-hover)}.element-type{font-size:12px;text-transform:uppercase;color:var(--ls-text-faint)}.element-item.active .element-type{color:var(--ls-accent-hover)}.element-name{flex-grow:1;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-elements{color:var(--ls-text-faint);text-align:center;padding:20px}.story-view{flex:1;min-width:0;display:flex;position:relative;isolation:isolate}.story-area{flex:1;min-width:0;background-color:var(--ls-canvas-bg);background-image:radial-gradient(circle,var(--ls-canvas-dot) 1.3px,transparent 1.4px);background-size:22px 22px;background-position:-11px -11px;overflow:auto;scrollbar-width:none}.story-area::-webkit-scrollbar{display:none}.story-zoom-box{position:relative;margin:80vh 80vw}.story-content{position:relative}.story-group{position:absolute;border:1px solid var(--ls-border);border-radius:10px;background-color:#ffffff05}.story-group.random{border-style:dashed;border-color:var(--ls-accent);background-color:var(--ls-accent-dim)}.story-group.branch{border-style:dashed;border-color:#b98cff;background-color:#b98cff0f}.story-group-head{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px}.story-group-name{color:var(--ls-text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-group-badge{color:var(--ls-accent-hover);background-color:#2fa8dc29;border-radius:6px;padding:1px 7px;font-size:10px;white-space:nowrap;flex-shrink:0}.story-group-badge.branch-badge{color:#d7bcff;background-color:#b98cff2e}.story-group-badge.jump-only{color:#e0a83a;background-color:#e0a83a29}.story-orphans{position:absolute;border:1px dashed var(--ls-danger);border-radius:10px;background-color:#e5484d0f}.story-orphans-head{padding:6px 10px;font-size:11px;font-weight:600;color:var(--ls-danger)}.story-node{position:absolute;cursor:pointer;-webkit-user-select:none;user-select:none}.story-node-thumb{position:relative;border-radius:6px;outline:2px solid transparent;outline-offset:1px;transition:outline-color .12s ease}.story-node:hover .story-node-thumb{outline-color:var(--ls-border)}.story-node.unreachable .story-node-thumb{outline-color:#e0a83a;outline-width:2px;outline-style:dashed}.story-node.dead .story-node-thumb{outline-color:var(--ls-danger);outline-width:2px}.story-node.current .story-node-thumb{outline-color:var(--ls-accent);outline-width:2px;outline-style:dashed}.story-node.selected .story-node-thumb{outline-color:var(--ls-accent);outline-width:2px;outline-style:solid}.story-node-label{margin-top:4px;height:18px;font-size:11px;color:var(--ls-text-muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-node.current .story-node-label{color:var(--ls-text)}.story-node-badges{position:absolute;top:4px;left:4px;display:flex;gap:4px}.story-node-badges .badge{font-size:10px;line-height:1;padding:3px 5px;border-radius:5px;background-color:#0f1218d1;color:var(--ls-text);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.story-node-badges .badge.dyn{color:var(--ls-accent-hover)}.story-node-badges .badge.dead{background-color:var(--ls-danger);color:#fff;font-weight:600}.story-node-badges .badge.return{background-color:#b98cff38;color:#d7bcff;font-weight:600}.story-node-badges .badge.master{background-color:#e58fc638;color:#f4c2e1;font-weight:600}.story-node-badges .badge.review{background-color:var(--ls-accent);color:var(--ls-accent-contrast);font-weight:600}.story-node-badges .badge.unreachable{background-color:#e0a83a;color:#241a05;font-weight:600}.story-node.ghost .ghost-body{display:flex;align-items:center;justify-content:center;border:1px dashed var(--ls-text-faint);border-radius:6px;background-color:var(--ls-surface);color:var(--ls-text-faint);font-size:11px}.story-node.ghost .story-node-label{color:var(--ls-text-faint)}.story-node.broken{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px dashed var(--ls-danger);border-radius:8px;background-color:#e5484d14;cursor:default}.story-node.broken .broken-mark{font-size:18px;font-weight:700;color:var(--ls-danger);line-height:1}.story-node.broken .broken-name{font-size:10px;color:var(--ls-danger);max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-master{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:6px 9px;border:1px solid #E58FC6;border-radius:9px;background-color:#e58fc614;cursor:pointer;-webkit-user-select:none;user-select:none}.story-master:hover{background-color:#e58fc624}.story-master.selected{outline:2px solid var(--ls-accent);outline-offset:2px}.story-master.broken{border-color:var(--ls-danger)}.story-master.unused{border-style:dashed;border-color:var(--ls-border);background-color:transparent}.story-master.unused:hover{border-color:var(--ls-text-faint);background-color:#ffffff0d}.story-master.unused .story-master-name{color:var(--ls-text-muted)}.story-master.unused .story-master-tag{color:var(--ls-text-faint);background-color:#ffffff0d}.story-master.unused .story-master-sub{color:var(--ls-text-faint)}.story-master-head{display:flex;align-items:center;gap:6px;min-width:0}.story-master-name{flex:1;min-width:0;font-size:11.5px;font-weight:600;color:var(--ls-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-master-warn{flex-shrink:0;font-size:11px;color:var(--ls-danger)}.story-master-tag{flex-shrink:0;font-size:9.5px;color:#f4c2e1;background-color:#e58fc62e;border-radius:5px;padding:1px 5px}.story-master-sub{font-size:10px;color:var(--ls-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-edges{pointer-events:none;overflow:visible}.story-edges path{pointer-events:stroke}.story-edge-queue{stroke:var(--ls-text-faint);stroke-width:2}.story-edge-queue.dim{opacity:.35;stroke-dasharray:4 4}.story-edge-order{stroke:var(--ls-text-faint);stroke-width:1.5}.story-edge-order.dim{opacity:.35;stroke-dasharray:4 4}.story-edge-script{stroke:var(--ls-accent);stroke-width:1.5;stroke-dasharray:5 4}.story-edge-script.broken{stroke:var(--ls-danger)}.story-edge-script.ambiguous{stroke:#e0a83a}.story-edge-rule{stroke:#b98cff;stroke-width:1.5;stroke-dasharray:2 3}.story-edge-rule.broken{stroke:var(--ls-danger)}.story-edge-branch-return{stroke:#7adba9;stroke-width:1.5;stroke-dasharray:8 5;opacity:.85}.story-edge-master{stroke:#e58fc6;stroke-width:1.5;stroke-dasharray:11 6;opacity:.9}.story-edge-hit{stroke:transparent;stroke-width:12;cursor:pointer;pointer-events:stroke}.story-edge-script.selected,.story-edge-rule.selected,.story-edge-master.selected{stroke-width:3;filter:drop-shadow(0 0 3px currentColor)}.story-edge-draft{stroke:var(--ls-accent);stroke-width:2;stroke-dasharray:5 4;pointer-events:none;opacity:.9}.story-node-port{position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:13px;height:13px;border-radius:50%;background-color:var(--ls-accent);border:2px solid var(--ls-bg, #1d2027);cursor:crosshair;opacity:0;transition:opacity .12s ease;z-index:6;box-shadow:0 0 0 1px #00000059}.story-node:hover .story-node-port,.story-node.selected .story-node-port{opacity:1}.story-node-port:hover{transform:translateY(-50%) scale(1.25)}.story-problems{position:absolute;left:14px;top:92px;z-index:15;max-width:340px;max-height:calc(100% - 160px);display:flex;flex-direction:column;background-color:#1d2027eb;border:1px solid rgba(224,168,58,.55);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 16px #0006;overflow:hidden;-webkit-user-select:none;user-select:none}.story-problems-head{flex-shrink:0;padding:6px 11px;font-size:11px;font-weight:700;color:#241a05;background-color:#e0a83a}.story-problems-list{margin:0;padding:6px 12px 8px 24px;overflow-y:auto;list-style:disc}.story-problems-list li{font-size:11px;line-height:1.5;color:var(--ls-text)}.story-group.selected{outline:2px solid var(--ls-accent);outline-offset:2px}.story-group.drop-target{border-color:var(--ls-accent);background-color:var(--ls-accent-dim);box-shadow:0 0 0 2px var(--ls-accent) inset}.story-group-head{cursor:pointer;-webkit-user-select:none;user-select:none}.story-group-head.draggable{cursor:grab}.story-group-head.draggable:active{cursor:grabbing}.story-node.dragging{opacity:.32}.story-add-bar{position:absolute;left:14px;bottom:14px;z-index:16;display:flex;gap:6px}.story-add-bar button{all:unset;cursor:pointer;font-size:11px;font-weight:600;color:var(--ls-text);background-color:#1d2027eb;border:1px solid var(--ls-border);border-radius:8px;padding:5px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.story-add-bar button:hover{border-color:var(--ls-accent);color:var(--ls-accent-hover)}.story-drop-popover{position:fixed;z-index:40;transform:translate(-6px,-6px);display:flex;flex-direction:column;gap:2px;min-width:150px;padding:6px;background-color:#1d2027f7;border:1px solid var(--ls-border);border-radius:10px;box-shadow:0 10px 30px #00000080}.story-drop-popover-title{font-size:10.5px;color:var(--ls-text-muted);padding:2px 6px 4px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-drop-popover button{all:unset;cursor:pointer;font-size:12px;color:var(--ls-text);border-radius:6px;padding:6px 8px}.story-drop-popover button:hover{background-color:var(--ls-accent-dim);color:var(--ls-accent-hover)}.story-drop-popover button.cancel{color:var(--ls-text-muted)}.story-drop-popover button.cancel:hover{background-color:#ffffff0f;color:var(--ls-text)}.story-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39}.story-when-popover{min-width:190px;max-width:280px}.story-when-timeline{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ls-text);padding:4px 8px}.story-when-timeline input{width:52px;background-color:#ffffff0f;border:1px solid var(--ls-border);border-radius:5px;color:var(--ls-text);font-size:12px;padding:3px 5px}.story-when-timeline .add{margin-left:auto;padding:4px 8px;background-color:var(--ls-accent-dim);color:var(--ls-accent-hover)}.story-when-timeline .add:hover{background-color:var(--ls-accent-dim);color:var(--ls-accent-hover)}.story-drag-ghost{position:fixed;z-index:3000;pointer-events:none;transform:translate(-50%,-50%) scale(.82);transform-origin:center;opacity:.92;filter:drop-shadow(0 8px 20px rgba(0,0,0,.5))}.story-drag-ghost-label{display:inline-block;font-size:12px;font-weight:600;color:var(--ls-text);background-color:#1d2027f7;border:1px solid var(--ls-accent);border-radius:8px;padding:6px 10px;white-space:nowrap}.app{width:100%;min-height:100vh}.ls-review-stage .course-player>.MuiBox-root{display:none}.ls-review-text{white-space:pre-wrap;overflow-wrap:anywhere}
