@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg-app:#090d16;--bg-panel:#0f172a;--bg-card:#141f36;--bg-canvas:#070b12;--border:#1e293b;--border-focus:#38bdf8;--text-main:#f1f5f9;--text-muted:#94a3b8;--text-dim:#64748b;--accent-cyan:#06b6d4;--accent-emerald:#10b981;--accent-indigo:#6366f1;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--glow-high:0 0 12px #10b981b3, 0 0 24px #10b98166;--glow-cyan:0 0 12px #06b6d4b3}*{box-sizing:border-box}body{background:var(--bg-app);color:var(--text-main);margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px;overflow-x:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border-radius:6px;transition:all .15s}.lobby{background:radial-gradient(circle at 80% 20%, #0ea5e91f 0%, transparent 40%), radial-gradient(circle at 20% 80%, #6366f11a 0%, transparent 50%), var(--bg-app);flex-direction:column;min-height:100vh;padding:40px 6vw;display:flex}.brand,.logo{letter-spacing:-.5px;align-items:center;gap:8px;font:700 17px JetBrains Mono,monospace;display:flex}.brand span,.logo span{color:var(--accent-cyan)}.mark{border:1px solid var(--accent-cyan);background:linear-gradient(135deg,#06b6d433,#6366f133);border-radius:8px;place-items:center;width:28px;height:28px;font-size:18px;display:inline-grid;box-shadow:0 0 14px #06b6d44d;color:var(--accent-cyan)!important}.lobby-grid{grid-template-columns:1.3fr .8fr;align-items:center;gap:80px;max-width:1080px;margin:10vh auto auto;display:grid}.eyebrow{letter-spacing:1.5px;color:var(--accent-cyan);text-transform:uppercase;margin:0;font:600 11px JetBrains Mono,monospace}.hero h1{letter-spacing:-2.5px;background:linear-gradient(90deg,#f8fafc,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:18px 0 20px;font-size:clamp(48px,6vw,76px);font-weight:800;line-height:1.05}.hero h1 em{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-indigo));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-style:normal}.intro{color:var(--text-muted);max-width:480px;font-size:16px;line-height:1.7}.hero-line{background:linear-gradient(90deg, var(--accent-cyan), transparent);width:80px;height:2px;margin:32px 0 16px}.micro{color:var(--text-dim);font-size:12px;line-height:1.6}.join-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:36px;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d}.join-card label{color:var(--text-main);margin-top:24px;font-size:14px;font-weight:500;display:block}.join-card input,.join-card select,.modal-form input,.modal-form select{border:1px solid var(--border);background:var(--bg-card);color:#fff;border-radius:8px;outline:none;width:100%;margin-top:8px;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:14px;transition:border-color .15s,box-shadow .15s;display:block}.join-card input:focus,.join-card select:focus,.modal-form input:focus,.modal-form select:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 3px #06b6d433}.form-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;display:grid}.modal-form{flex-direction:column;gap:16px;padding:24px;display:flex}.modal-form label{color:var(--text-dim);text-transform:uppercase;font:600 12px JetBrains Mono}.modal-form .actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.hint{color:var(--text-dim);margin-top:10px;font-size:12px;line-height:1.5}.primary{background:linear-gradient(135deg, var(--accent-cyan), #0284c7);color:#041017;border:0;border-radius:8px;justify-content:space-between;align-items:center;width:100%;margin-top:24px;padding:14px 20px;font-size:14px;font-weight:700;display:flex;box-shadow:0 4px 14px #06b6d44d}.primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172ad9;align-items:center;gap:24px;height:60px;padding:0 24px;display:flex}.crumb{color:var(--text-muted);align-items:center;gap:12px;font:500 12px JetBrains Mono,monospace;display:flex}.status-pill{letter-spacing:.5px;color:var(--accent-emerald);background:#10b9811f;border:1px solid #10b9814d;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-size:10px;font-weight:600;display:inline-flex}.status-pill.fallback{color:var(--accent-amber);background:#f59e0b1f;border-color:#f59e0b4d}.status-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse-dot;box-shadow:0 0 8px}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.team{align-items:center;margin-left:auto;display:flex}.avatar{border:2px solid var(--bg-panel);color:#38bdf8;background:linear-gradient(135deg,#334155,#1e293b);border-radius:50%;place-items:center;width:28px;height:28px;margin-left:-6px;font:700 10px JetBrains Mono;transition:transform .15s,z-index .15s;display:grid;box-shadow:0 2px 6px #0000004d}.avatar:hover{z-index:10;transform:translateY(-3px)scale(1.15)}.text-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600}.text-btn:hover{border-color:var(--border-focus);background:#38bdf81a}.shell{background:var(--bg-app);grid-template-columns:200px 1fr 260px;height:calc(100vh - 60px);display:grid}.left-panel,.right-panel{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;gap:18px;padding:20px 14px;display:flex;overflow-y:auto}.right-panel{border-left:1px solid var(--border);border-right:0}.panel-heading{justify-content:space-between;align-items:center;display:flex}.panel-heading p,.shortcuts p,.inspector-title p,.signal-card p{letter-spacing:1px;color:var(--text-dim);text-transform:uppercase;margin:0;font:600 11px JetBrains Mono}.panel-heading small{color:var(--text-dim);font-size:10px}.palette{grid-template-columns:1fr 1fr;gap:8px;display:grid}.palette button{text-align:left;border:1px solid var(--border);background:var(--bg-card);min-height:60px;color:var(--text-main);border-radius:8px;flex-direction:column;justify-content:space-between;padding:10px;transition:all .15s;display:flex}.palette button:hover{border-color:var(--accent-cyan);background:#06b6d41f;transform:translateY(-2px);box-shadow:0 4px 12px #06b6d426}.gate-icon{color:var(--accent-cyan);font:700 13px JetBrains Mono}.palette small{color:var(--text-dim);font-size:9px}.shortcuts{color:var(--text-dim);border-top:1px solid var(--border);gap:8px;margin-top:auto;padding-top:14px;font-size:11px;line-height:1.4;display:grid}.shortcuts kbd{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:2px 5px;font:10px JetBrains Mono}.studio{background:var(--bg-app);flex-direction:column;min-width:0;display:flex}.studio-head{border-bottom:1px solid var(--border);background:var(--bg-panel);justify-content:space-between;align-items:center;height:70px;padding:0 24px;display:flex}.studio-head h2{letter-spacing:-.5px;margin:2px 0 0;font-size:18px}.actions{gap:8px;display:flex}.actions button{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:6px;padding:8px 14px;font-size:12px;font-weight:600}.actions button:hover{border-color:var(--text-muted);color:var(--text-main);background:#1e293b}.actions .run{background:linear-gradient(135deg, var(--accent-emerald), #059669);color:#022013;border:0;font-weight:700;box-shadow:0 2px 10px #10b9814d}.actions .run:hover{filter:brightness(1.1)}.actions .demo-btn{border-color:var(--accent-indigo);color:#a5b4fc;background:linear-gradient(135deg,#6366f133,#8b5cf633)}.canvas-frame{flex:1;min-height:0;padding:16px;position:relative}.canvas{border:1px solid var(--border);background-color:var(--bg-canvas);background-image:radial-gradient(#ffffff14 1px,#0000 1px);background-size:20px 20px;border-radius:8px;width:100%;height:100%;position:relative;overflow:hidden}.canvas svg,.canvas #nodes{width:100%;height:100%;position:absolute;inset:0}.canvas svg{pointer-events:none}.wire{fill:none;stroke:#334155;stroke-width:2.5px;transition:stroke .2s,stroke-width .2s}.wire.high{stroke:var(--accent-emerald);stroke-width:3px;filter:drop-shadow(0 0 6px var(--accent-emerald))}.empty-state{text-align:center;color:var(--text-dim);pointer-events:none;gap:6px;display:grid;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}[hidden],.empty-state[hidden]{display:none!important}.empty-state b{color:var(--text-muted);font-size:15px}.node{-webkit-user-select:none;user-select:none;cursor:grab;width:108px;height:56px;transition:transform 50ms ease-out;position:absolute}.node:active{cursor:grabbing}.node.dragging{cursor:grabbing!important;transition:none!important}.node .body{background:var(--bg-card);border:1.5px solid var(--border);letter-spacing:-.3px;border-radius:8px;place-items:center;height:100%;font:700 13px JetBrains Mono;transition:border-color .15s,box-shadow .15s;display:grid;box-shadow:0 4px 12px #0006}.node.input .body{background:linear-gradient(135deg, #06b6d426, var(--bg-card));color:#38bdf8;border-color:#06b6d480}.node.input.active .body{border-color:var(--accent-emerald);background:linear-gradient(135deg, #10b98140, var(--bg-card));color:#34d399;box-shadow:0 0 16px #10b9814d}.node.output .body{background:linear-gradient(135deg, #f59e0b26, var(--bg-card));color:#fbbf24;border-color:#f59e0b80}.node.not .body{color:#fb7185;border-color:#f43f5e80}.node.and .body,.node.or .body,.node.xor .body,.node.nand .body,.node.nor .body{color:#a5b4fc;border-color:#6366f180}.node.selected .body{border-color:var(--accent-cyan);box-shadow:0 0 0 2px #06b6d466,0 8px 24px #00000080}.node .label{text-align:center;width:100%;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font:500 10px JetBrains Mono;position:absolute;top:60px;overflow:hidden}.pin{border:2px solid var(--text-dim);background:var(--bg-panel);z-index:5;cursor:crosshair;border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s,border-color .15s;position:absolute;top:21px}.pin:hover,.pin.armed{background:var(--accent-cyan);box-shadow:0 0 10px var(--accent-cyan);border-color:#fff;transform:scale(1.3)}.pin.in{left:-7px}.pin.out{right:-7px}.pin.in.two{top:37px}.canvas-foot{height:36px;color:var(--text-dim);border-top:1px solid var(--border);background:var(--bg-panel);justify-content:space-between;align-items:center;padding:0 24px;font:11px JetBrains Mono;display:flex}.canvas-foot b{color:var(--accent-cyan)}.inspector-title{justify-content:space-between;align-items:center;display:flex}.inspector-title span{color:var(--accent-cyan);font:600 11px JetBrains Mono}.no-selection{color:var(--text-dim);border-top:1px solid var(--border);padding:16px 0;line-height:1.6}.field{margin:14px 0}.field label{color:var(--text-dim);margin-bottom:6px;font:600 10px JetBrains Mono;display:block}.field input{border:1px solid var(--border);background:var(--bg-card);width:100%;color:var(--text-main);border-radius:6px;outline:0;padding:8px 12px;font-family:JetBrains Mono}.field input:focus{border-color:var(--accent-cyan)}.toggle{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.toggle button{border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:20px;padding:6px 14px;font:700 11px JetBrains Mono}.toggle button.on{border-color:var(--accent-emerald);color:#34d399;background:#10b98133;box-shadow:0 0 10px #10b98133}.delete{color:var(--accent-rose);background:#f43f5e1a;border:1px solid #f43f5e4d;width:100%;margin-top:16px;padding:8px 12px;font-size:11px;font-weight:600}.delete:hover{background:#f43f5e33}.signal-card{border-top:1px solid var(--border);padding-top:16px}.signal-row{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;justify-content:space-between;margin:4px 0;padding:6px 8px;font:11px JetBrains Mono;display:flex}.value{color:var(--text-dim);font-weight:700}.value.one{color:var(--accent-emerald)}dialog{border:1px solid var(--border);background:var(--bg-panel);width:90%;max-width:680px;color:var(--text-main);border-radius:12px;padding:0;box-shadow:0 25px 60px #000000b3}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000bf}#modal-body{max-height:70vh;padding:28px;overflow:auto}.close-modal{border:0;border-top:1px solid var(--border);background:var(--bg-card);width:100%;color:var(--text-muted);border-radius:0 0 12px 12px;padding:14px;font-weight:600}.close-modal:hover{color:var(--text-main);background:#1e293b}.truth-table{border-collapse:collapse;width:100%;margin-top:14px;font:12px JetBrains Mono}.truth-table td,.truth-table th{border-bottom:1px solid var(--border);text-align:center;padding:10px 14px}.truth-table th{color:var(--accent-cyan);background:var(--bg-card)}.truth-table .bit-one{color:var(--accent-emerald);font-weight:700}.truth-table .bit-zero{color:var(--text-dim)}.remote-cursor{z-index:25;pointer-events:none;color:#f1f5f9;white-space:nowrap;border:1px solid var(--accent-cyan);will-change:left, top;background:#0f172aeb;border-radius:14px;align-items:center;gap:6px;padding:3px 9px;font:600 11px JetBrains Mono;transition:left 60ms linear,top 60ms linear;display:flex;position:absolute;transform:translate(6px,6px);box-shadow:0 4px 14px #0009}.remote-cursor i{background:var(--accent-cyan);width:8px;height:8px;box-shadow:0 0 8px var(--accent-cyan);border-radius:50%;display:inline-block}.toast{background:var(--bg-card);border:1px solid var(--border);color:var(--text-main);z-index:999;border-radius:8px;padding:10px 18px;font:500 12px JetBrains Mono;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}@media (width<=1200px){.shell{grid-template-columns:160px 1fr 220px}.actions button{padding:6px 10px;font-size:11px}.actions .demo-btn{font-size:11px}}@media (width<=960px){.shell{grid-template-columns:140px 1fr}.right-panel{display:none}.canvas-frame{overflow:auto}.canvas{min-width:960px;min-height:600px}}@media (width<=768px){.lobby-grid{grid-template-columns:1fr;gap:32px;margin-top:4vh}.hero h1{font-size:38px}.topbar{gap:12px;padding:0 12px}.shell{grid-template-columns:1fr}.left-panel{display:none}}
