:root{color-scheme:dark;--bg:#171819;--panel:#222324;--line:#3b3d3e;--text:#eee;--muted:#939796;--accent:#def76c}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;background:var(--bg);color:var(--text);font-size:14px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{background:#2b2d2f;border:1px solid #404244;border-radius:10px;color:var(--text);padding:10px 13px;cursor:pointer;transition:background .15s}button:hover{background:#3b3e40}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#171b0d;border-color:var(--accent);font-weight:750}a{color:inherit;text-decoration:none}header{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 26px;border-bottom:1px solid var(--line);background:#1d1e20;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:13px}.brand img{width:94px;height:auto}.brand span{font-size:10px;letter-spacing:2px;color:var(--muted)}nav{display:flex;align-items:center;gap:14px;margin-right:auto}nav button{border:0;background:none}.header-actions{display:flex;align-items:center;gap:12px}#save-state{font-size:12px;color:var(--muted)}[hidden]{display:none!important}#message{position:fixed;top:84px;left:50%;transform:translateX(-50%);z-index:100;background:#313730;border:1px solid #667050;border-radius:12px;padding:12px 20px;box-shadow:0 12px 60px #0005;max-width:min(720px,90vw);white-space:pre-line}#message.error{background:#462c2d;border-color:#8d4545}.login{max-width:430px;margin:11vh auto;padding:24px}.login h1{font-size:36px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--accent)}label{display:flex;flex-direction:column;gap:8px;margin:18px 0;font-size:12px;color:#bfc2bf}input,textarea,select{width:100%;border:1px solid #454849;background:#1a1b1c;color:#f4f4ed;border-radius:8px;padding:11px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}textarea{resize:vertical;line-height:1.6}.login p,.hint{color:var(--muted);line-height:1.7}.login button{width:100%;margin-top:12px}#chooser{max-width:1120px;margin:auto;padding:70px 40px}.intro h1{font-size:44px;font-weight:750;letter-spacing:-2px;margin:20px 0}.intro h1 span{display:block;color:#777e78;font-size:32px;margin-top:10px}.intro p{color:#a0a6a0}.canvas-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:42px}.canvas-choice{text-align:left;padding:24px;border-radius:20px;background:linear-gradient(135deg,#292d29,#212323);display:flex;flex-direction:column;gap:16px;overflow:hidden}.canvas-choice:hover{border-color:#b1c661;transform:translateY(-2px)}.choice-art{position:relative;display:block;height:190px;width:100%;background-image:radial-gradient(#6668 .8px,transparent .8px);background-size:18px 18px}.choice-art i{position:absolute;width:100px;height:132px;border:1px solid #8b9785;border-radius:12px;background:linear-gradient(145deg,#b7c29333,#252b24);left:12%;top:20px;transform:rotate(-12deg);box-shadow:0 10px 25px #0003}.choice-art i:nth-child(2){left:37%;top:38px;transform:rotate(5deg);background:linear-gradient(140deg,#dfed94aa,#5c7155)}.choice-art i:nth-child(3){left:63%;top:13px;transform:rotate(14deg)}.video-art i{height:90px;width:145px;text-align:center;line-height:90px;color:#d7f479;top:44px;transform:rotate(-6deg)}.video-art i:nth-child(2){left:30%;top:66px;transform:rotate(0);z-index:-1}.video-art i:nth-child(3){left:55%;top:30px;transform:rotate(8deg)}.choice-number{color:var(--accent);letter-spacing:3px;font-size:10px}.canvas-choice strong{font-size:25px}.canvas-choice>span:last-child{color:var(--muted);font-size:12px}.safety-note{font-size:12px;color:var(--muted);margin-top:30px}#editor{position:relative;height:calc(100dvh - 72px);overflow:hidden}#stage{position:absolute;inset:0;overflow:hidden;background-color:#202122;background-image:radial-gradient(#62666855 1px,transparent 1px);background-size:24px 24px;touch-action:none;outline:none}#stage.pan{cursor:grab}#stage.panning{cursor:grabbing}#world{position:absolute;transform-origin:0 0;will-change:transform}#nodes{position:absolute;left:0;top:0}#edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}#edges path{fill:none;stroke:#818782;stroke-width:2;pointer-events:stroke;cursor:pointer}#edges path:hover{stroke:var(--accent);stroke-width:4}.node{position:absolute;user-select:none;border:1.5px solid transparent;border-radius:15px;overflow:visible}.node.selected{border-color:var(--accent);box-shadow:0 0 0 2px #def76c22}.node-header{height:35px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;color:#b7bcb7;font-size:12px;cursor:move;position:absolute;top:-36px;left:0;right:0}.node-header strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.node-header small{font-size:10px;color:#818781;white-space:nowrap}.node-content{height:100%;border-radius:13px;background:#2c2f2d;overflow:hidden;position:relative;border:1px solid #3d423d}.node-content img,.node-content video{width:100%;height:100%;object-fit:contain;pointer-events:none}.node-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:#6f796f;padding:24px;text-align:center}.node-placeholder span{font-size:42px;color:#8e9a87}.node-placeholder p{font-size:12px;line-height:1.6;margin:0}.node-text{padding:20px;white-space:pre-wrap;line-height:1.6;font-size:14px;overflow:auto;height:100%;color:#d0d6cb}.node.group{background:#b4bbaa08;border:1px solid #656c604d;border-radius:24px}.node.group.selected{border-color:var(--accent)}.node.group .node-header{font-size:18px;top:-42px;height:40px}.port{position:absolute;width:20px;height:20px;border:2px solid #adb6ab;background:#242925;border-radius:50%;padding:0;top:50%;margin-top:-10px;z-index:3}.port.in{left:-11px}.port.out{right:-11px}.port:hover,.port.connecting{border-color:var(--accent);background:var(--accent)}.node-badge{position:absolute;bottom:12px;left:12px;font-size:10px;background:#121713c9;border-radius:6px;padding:6px;color:var(--accent);pointer-events:none}.resize-handle{position:absolute;right:-5px;bottom:-5px;width:13px;height:13px;background:var(--accent);border:2px solid #202622;border-radius:3px;cursor:nwse-resize;display:none}.selected .resize-handle{display:block}#empty-canvas{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}#empty-canvas span{font-size:70px;color:var(--accent)}#empty-canvas h2{font-size:24px}#empty-canvas p{color:var(--muted);line-height:1.8}#empty-canvas button{pointer-events:auto}#selection-box{position:absolute;border:1px solid var(--accent);background:#def76c16;pointer-events:none}#library,#inspector{position:absolute;top:16px;bottom:90px;width:252px;background:#222426ee;backdrop-filter:blur(24px);border:1px solid #4e535166;border-radius:16px;z-index:10;display:flex;flex-direction:column;box-shadow:0 10px 40px #0002}#library{left:16px}#inspector{right:16px;width:306px;overflow:auto;padding:0 18px 18px}.side-heading{display:flex;align-items:center;justify-content:space-between;padding:16px;gap:10px}#inspector .side-heading{padding:16px 0;position:sticky;top:0;background:#222426;z-index:1}.side-heading button{border:0;background:transparent;padding:0 4px;font-size:20px;color:var(--muted)}#group-search{margin:0 12px;width:calc(100% - 24px);font-size:12px}#groups{overflow:auto;padding:12px;flex:1}.group-item{display:flex;width:100%;text-align:left;gap:12px;align-items:center;margin-bottom:6px;border:1px solid transparent;background:transparent;padding:10px;border-radius:9px}.group-item:hover{background:#3a3f38}.group-item.active{border-color:#a8c45d;background:#d0ed7012}.group-item img{width:42px;height:50px;object-fit:cover;border-radius:6px}.group-item span{font-size:12px;line-height:1.4}.group-item small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.library-footer{padding:12px;border-top:1px solid var(--line)}.library-footer button{font-size:11px;width:100%;padding:8px;margin:3px 0}.library-footer p{color:var(--muted);font-size:10px;line-height:1.6}.form-row{display:flex;gap:10px;align-items:center}.form-row>*{flex:1;min-width:0}.hint{font-size:10px}#node-form>section>button{width:100%;margin:5px 0;font-size:12px}.danger{color:#ff9c9c}#connections h3{font-size:12px;color:var(--muted)}.connection{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:6px 0}.connection button{padding:3px 6px}#toolbar{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:7px;background:#282b2bd9;backdrop-filter:blur(20px);border:1px solid #555b5466;border-radius:15px;box-shadow:0 12px 35px #0004;z-index:15}#toolbar button{width:39px;height:39px;border:0;background:transparent;padding:0;font-size:22px}#toolbar button:hover,#toolbar .active{background:#484f45}#toolbar button.add{background:#edf0e8;color:#222;font-size:29px}.tool-divider{height:25px;width:1px;background:#595e55;margin:0 2px}#add-menu{position:absolute;bottom:90px;left:50%;transform:translateX(-170px);background:#2a2d2b;border:1px solid #525a4b;border-radius:14px;padding:14px;width:210px;z-index:25;box-shadow:0 18px 60px #0006}#add-menu strong{font-size:12px;color:#aab1a4;display:block;margin-bottom:8px}#add-menu button{display:block;width:100%;text-align:left;background:none;border:0}.view-tools{position:absolute;left:18px;bottom:14px;display:flex;align-items:center;gap:4px;z-index:12;background:#202423bf;border-radius:10px;padding:4px}.view-tools button{border:0;background:transparent;padding:7px;font-size:11px}.view-tools output{font-size:11px;min-width:38px;text-align:center}.view-tools [aria-pressed=true]{color:var(--accent)}dialog{color:var(--text);background:#232624;border:1px solid #535a50;border-radius:20px;max-width:560px;width:90vw;padding:0;box-shadow:0 24px 100px #0009}dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}dialog header{background:transparent;height:60px;padding:0 22px}#dialog-body{padding:22px;white-space:pre-line;line-height:1.8;color:#c6ccc2}#dialog-body button{display:block;width:100%;margin:8px 0;text-align:left}#dialog-body p{margin:0 0 12px}.local-only{color:#ffd781}@media(max-width:1000px){#library{width:208px}#inspector{width:270px}.header-actions span{display:none}#toolbar{bottom:60px}.view-tools{left:50%;transform:translateX(-50%);white-space:nowrap}#chooser{padding:45px 25px}}@media(max-width:700px){header{padding:0 14px;gap:10px}.brand span,nav #canvas-title{display:none}.brand img{width:70px}.canvas-choices{grid-template-columns:1fr}.intro h1{font-size:34px}.intro h1 span{font-size:25px}#library{width:200px;bottom:130px}#inspector{width:min(310px,calc(100% - 30px));bottom:130px}#save{padding:9px;font-size:12px}nav button{font-size:11px;padding:6px}.header-actions{gap:5px}#logout{display:none}#empty-canvas{width:80%}#toolbar{gap:2px}#toolbar button{width:34px}#chooser{padding-bottom:70px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:700px){#inspector{top:auto;bottom:126px;max-height:44%;width:calc(100% - 32px);right:16px}.view-tools button{padding:7px 5px}#inspector .side-heading{padding:12px 0}#node-form label{margin:12px 0}}
.node-content video{pointer-events:auto}
.node{left:0;top:0}.node.dragging{will-change:transform}.node-content{contain:layout paint}.node-content img{content-visibility:auto}
.model-filters{display:grid;gap:8px;margin:18px 0 10px;padding-top:16px;border-top:1px solid #354236}
.model-filters .hint{margin:0;font-size:11px}
.model-parameters{border:1px solid #354236;border-radius:12px;padding:12px;margin:12px 0;background:#111a16}
.model-parameters a,.catalog-row a{color:#d8f383;font-size:12px}
.model-parameters label small{display:block;font-size:11px;font-weight:400;line-height:1.5;color:#98a49b;overflow-wrap:anywhere}
.parameter-help{max-height:64px;overflow:auto;margin-top:4px;white-space:pre-line}
.model-parameters select[multiple]{min-height:76px}
.catalog-list{display:grid;gap:10px;margin-top:14px;max-height:55vh;overflow:auto}
.catalog-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;border:1px solid #354236;border-radius:12px;padding:12px;white-space:normal}
.catalog-row strong,.catalog-row small{grid-column:1/-1;overflow-wrap:anywhere}
.catalog-row small{font-size:11px;color:#98a49b}
#dialog-body .catalog-row button{width:auto;margin:0;padding:6px 14px;font-size:12px}
.studio-sync-form{display:grid;gap:16px;margin-top:20px}.studio-sync-form label{display:grid;gap:8px;color:#e8e8e8;font-size:13px}.studio-sync-form input,.studio-sync-form select,.studio-sync-form textarea{box-sizing:border-box;width:100%;padding:12px;border:1px solid #444;border-radius:10px;background:#161616;color:#fff;font:inherit}.studio-sync-form .hint{font-size:12px;line-height:1.6}.studio-sync-form button{min-height:44px}
.purpose-guide,.requirements{font-size:11px;line-height:1.7;padding:11px 12px;border:1px solid #49533c;border-radius:10px;background:#def76c08;color:#c9d5ba;white-space:pre-line}
.requirements.incomplete{color:#efca92;border-color:#69553b;background:#e9b45b08}
#media-title{font-size:12px;margin-top:20px}#asset-reference input{font-size:10px;color:var(--accent)}#media-settings label small{font-size:10px;line-height:1.6;color:var(--muted)}#validate{width:100%;margin:6px 0 16px}.binding-status{color:var(--accent)!important}#auto-bind-media{width:100%;font-size:11px}
#asset-preview{display:inline-block;color:var(--accent);font-size:11px;padding:7px 0;text-decoration:underline;text-underline-offset:3px}
