@import url('fonts.css');
:root{font-family:'DM Sans',sans-serif;color:#d9dadf;background:#191a1e;font-synthesis:none;--accent:#c3b2ff;--muted:#85868f;--line:#303137;--panel:#222328}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{border:0}svg.icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}button{transition:background .15s,color .15s}.topbar{height:88px;display:flex;align-items:center;padding:0 28px;gap:24px;border-bottom:1px solid var(--line);background:#1e1f23}.brand{font-family:'Manrope',sans-serif;font-size:32px;letter-spacing:-1.8px;font-weight:800;display:flex;align-items:center;text-decoration:none;color:#f5f5f7;gap:10px}.brand-dot{color:var(--accent);margin-left:-10px}.brand-mark{display:inline-flex;width:37px;height:37px;background:var(--accent);border-radius:10px;position:relative;align-items:center;justify-content:center;color:#24202f;font-size:31px;letter-spacing:-2px;line-height:1}.brand-mark span{position:absolute;font-size:18px;right:5px;top:4px}.header-divider{height:31px;width:1px;background:var(--line);margin-left:8px}.board-heading{display:flex;flex-direction:column;gap:4px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:650}.board-heading input{color:#eeedf2;outline:none;border:0;border-bottom:1px solid transparent;padding:0;background:transparent;font-size:16px;font-weight:550;width:240px}.board-heading input:focus{border-bottom-color:var(--accent)}.save-status{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap;display:flex;align-items:center;gap:7px}.save-status:before{content:'✓';font-size:14px;color:#a0a1ab}.header-actions{display:flex;gap:10px;align-items:center}.btn{padding:11px 15px;border-radius:8px;display:inline-flex;gap:9px;align-items:center;font-size:13px;font-weight:550;justify-content:center;white-space:nowrap}.primary{background:var(--accent);color:#252032}.primary:hover{background:#d3c7ff}.secondary{background:#2b2c32;border:1px solid #3a3b43}.secondary:hover{background:#393a43}.quiet{background:transparent;padding:8px;color:#91939e}.quiet:hover{background:#303138;color:#fff}.workspace{height:calc(100dvh - 88px);display:flex}.sidebar{width:246px;flex-shrink:0;background:#1e1f23;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:23px 17px 16px;z-index:3}.sidebar-header{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:650;color:#8e909a;letter-spacing:1.5px;margin:0 4px 18px}.icon-btn{background:none;padding:5px;border-radius:5px;color:#a6a7af;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{color:white;background:#36373f}.sidebar-header svg{width:16px}.board-nav{padding:11px 9px;border:1px solid #41404e;border-radius:9px;display:flex;align-items:center;gap:10px;background:#302c3a}.board-thumb{width:32px;height:35px;display:grid;place-items:center;border-radius:6px;background:#484055;color:#cebeff}.board-nav strong{display:block;font-size:12px;font-weight:550;max-width:146px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-nav span:not(.board-thumb){display:block;color:#a5a0b0;font-size:10px;margin-top:4px}.section-title{font-size:10px;font-weight:650;letter-spacing:1.4px;color:#93949f;display:flex;justify-content:space-between;margin:28px 5px 15px}.section-title span{font-size:11px;background:#303138;border-radius:4px;padding:1px 6px;letter-spacing:0}.filter-row{display:flex;background:#17181c;padding:4px;border-radius:7px;margin-bottom:13px;gap:4px}.filter{color:#8e909a;background:none;padding:7px 12px;border-radius:5px;font-size:12px;flex:1}.filter svg{height:15px;width:15px}.filter.active{color:#e9e5f7;background:#36313f}.filter:hover{color:#fff}.library{overflow:auto;flex:1;margin:0 -5px;padding:0 5px}.library-item{display:flex;align-items:center;gap:10px;padding:9px 5px;border-radius:7px;text-align:left;background:transparent;width:100%;margin-bottom:4px}.library-item:hover{background:#2b2c33}.library-item.selected{background:#302c3a}.library-thumb{width:43px;height:43px;border-radius:5px;object-fit:cover;background:#32333b;display:grid;place-items:center;flex-shrink:0}.library-thumb img{width:100%;height:100%;object-fit:cover;border-radius:5px}.library-item strong{font-size:12px;font-weight:500;color:#cfcfd7;display:block;width:137px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-item small{font-size:10px;color:#777984;display:block;margin-top:4px}.library-item.selected strong{color:#e1d5ff}.library-empty{padding:25px 9px;text-align:center;font-size:12px;line-height:1.8;color:#8b8d98}.import-copy{margin-top:12px;background:none;color:#9b9ba7;font-size:11px;display:flex;gap:8px;align-items:center;padding:10px 6px;border-top:1px solid var(--line)}.import-copy svg{width:15px}.import-copy:hover{color:var(--accent)}.sidebar-bottom{display:flex;gap:9px;padding:15px 4px 2px;border-top:1px solid var(--line);margin-top:5px}.storage-icon{color:#757582;padding-top:2px}.storage-icon svg{width:16px}.sidebar-bottom strong{font-size:10px;color:#b0b0bc;font-weight:500}.sidebar-bottom p{font-size:10px;line-height:1.6;color:#777984;margin:5px 0 0}.canvas{flex:1;position:relative;overflow:hidden;outline:none;touch-action:none;background-color:#24252a;background-image:radial-gradient(#45464f .8px,transparent .8px);background-size:24px 24px}.canvas.tool-hand{cursor:grab}.canvas.is-panning{cursor:grabbing}.canvas.tool-note{cursor:crosshair}.canvas.tool-connect{cursor:crosshair}.canvas-top{position:absolute;left:26px;right:26px;top:21px;display:flex;justify-content:space-between;align-items:center;z-index:4;pointer-events:none}.canvas-top>*{pointer-events:auto}.view-label{display:flex;align-items:center;gap:8px;color:#adadb8;font-size:12px}.view-label svg{width:18px;color:var(--accent)}.label-divider{height:12px;width:1px;background:#55555f;margin:0 4px}#canvas-count{color:#81838d}.collage-btn{background:#303137;border:1px solid #484851;color:#d8d7e2;font-size:12px;padding:9px 13px;box-shadow:0 3px 12px #0002}.collage-btn svg{color:var(--accent);width:16px}.collage-btn:hover{background:#413b50}.world{position:absolute;left:0;top:0;transform-origin:0 0;width:0;height:0}.connections{position:absolute;left:0;top:0;overflow:visible;width:1px;height:1px;z-index:0}.connection-path{fill:none;stroke:#a6a0b9;stroke-width:2.5;cursor:pointer;pointer-events:stroke}.connection-hit{fill:none;stroke:transparent;stroke-width:20;cursor:pointer;pointer-events:stroke}.connection-path.selected{stroke:var(--accent);stroke-width:3.5}.item{position:absolute;user-select:none;touch-action:none;cursor:grab;outline:none;border-radius:7px;box-shadow:0 10px 28px #0003;background:#1c1d22;overflow:visible}.item:active{cursor:grabbing}.item.selected{outline:2px solid var(--accent);outline-offset:3px;z-index:2}.item.connect-source{outline:3px solid #b5eda4;outline-offset:4px}.media-visual{width:100%;height:calc(100% - 35px);overflow:hidden;border-radius:7px 7px 0 0;background:#16171a;position:relative}.media-visual img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.media-visual video{width:100%;height:100%;object-fit:contain;display:block;background:#111}.item-footer{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;gap:8px;font-size:10px;border-radius:0 0 7px 7px}.item-footer .file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#b8b9c3}.item-footer .file-tag{font-size:8px;color:#858793;letter-spacing:.7px;white-space:nowrap}.item-footer svg{width:12px;height:12px;color:#777a88;margin-right:4px}.media-error{position:absolute;inset:0;padding:20px;background:#24242a;display:flex;flex-direction:column;justify-content:center;gap:7px;text-align:center;font-size:13px;color:#bbb;pointer-events:none}.media-error strong{color:#ddd;font-weight:500}.resize-handle{display:none;position:absolute;right:-7px;bottom:-7px;width:12px;height:12px;background:var(--accent);border:2px solid #24252a;border-radius:3px;cursor:nwse-resize;z-index:4}.item.selected .resize-handle{display:block}.item.note{padding:21px 22px 15px;background:#eee3a1;border-radius:3px;color:#3b3926;box-shadow:3px 9px 20px #0002;display:flex;flex-direction:column}.note[data-color=pink]{background:#e8b2c2;color:#482934}.note[data-color=mint]{background:#bcdcc5;color:#2a4434}.note[data-color=purple]{background:#c8b9ed;color:#3f315c}.note-text{font-family:'Manrope',sans-serif;white-space:pre-wrap;overflow:auto;font-size:17px;font-weight:550;line-height:1.55;outline:none;flex:1;cursor:inherit;overflow-wrap:anywhere}.note-text[contenteditable=true]{user-select:text;cursor:text}.note-footer{display:flex;align-items:center;justify-content:space-between;opacity:.48;font-size:9px;margin-top:14px;font-weight:550;letter-spacing:.5px}.note-footer svg{height:12px;width:12px}.item.audio{padding:20px 19px 14px;background:#302b3e;border:1px solid #4b405e;color:#e6ddf9;display:flex;flex-direction:column;min-width:230px}.audio-label{display:flex;align-items:center;gap:9px;color:#bbaacf;font-size:9px;letter-spacing:1.4px}.audio-label svg{height:14px;width:14px}.audio-title{font-size:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:12px 0 8px}.audio-control{display:flex;align-items:center;gap:11px;flex:1}.audio-play{width:33px;height:33px;border-radius:50%;background:#c4ace7;color:#332541;display:grid;place-items:center;flex-shrink:0}.audio-play svg{height:15px;width:15px}.waveform{display:flex;align-items:center;gap:3px;flex:1;height:36px;overflow:hidden;cursor:pointer}.waveform span{width:3px;min-width:3px;border-radius:2px;background:#756084}.waveform span.played{background:#d2b4ef}.audio-meta{font-size:9px;display:flex;justify-content:space-between;margin-top:10px;color:#a394b5}.audio native{display:none}.tool-rail{position:absolute;top:50%;transform:translateY(-50%);left:21px;background:#1b1c20;border:1px solid #3b3c43;border-radius:12px;padding:7px;z-index:6;display:flex;flex-direction:column;gap:3px;box-shadow:0 8px 24px #0003}.tool{width:37px;height:38px;border-radius:7px;background:none;display:grid;place-items:center;color:#9b9ca9}.tool:hover{background:#32333b;color:#e2dff0}.tool.active{background:#c3b2ff;color:#302744}.tool svg{height:19px;width:19px}.tool-divider{width:23px;height:1px;background:#383941;margin:5px auto}.canvas-bottom{position:absolute;bottom:21px;left:26px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:5;pointer-events:none}#tool-hint{font-size:10px;color:#838590;pointer-events:none;background:#24252ad9;padding:7px;border-radius:5px}#tool-hint span{margin:0 7px;color:#626471}.zoom-controls{display:flex;align-items:center;padding:5px;background:#1b1c20;border:1px solid #3b3c43;border-radius:9px;pointer-events:auto}.zoom-controls button{background:none;padding:5px;display:grid;place-items:center;min-width:29px;height:28px;font-size:11px;color:#c0bfcc;border-radius:5px}.zoom-controls button:hover{background:#383941}.zoom-controls svg{width:15px;height:15px}.zoom-controls span{width:1px;height:17px;background:#383941;margin:0 4px}.selection-bar{position:absolute;top:72px;left:50%;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:12px;background:#1b1c20;border:1px solid #45424e;padding:7px 10px 7px 15px;border-radius:9px;box-shadow:0 3px 20px #0003}.selection-bar span{font-size:12px;color:#c1bacf;white-space:nowrap}.selection-bar svg{width:16px;height:16px}.note-colors{display:flex;gap:6px}.note-colors button{height:18px;width:18px;border-radius:50%;background:#eee3a1}.note-colors [data-color=pink]{background:#e8b2c2}.note-colors [data-color=mint]{background:#bcdcc5}.note-colors [data-color=purple]{background:#c8b9ed}.empty-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:90px;pointer-events:none}.empty-state>*{pointer-events:auto}.empty-state>div{color:var(--accent);background:#3d344e;padding:23px;border-radius:20px;margin-bottom:20px}.empty-state>div svg{width:38px;height:38px}.empty-state h1{max-width:450px;letter-spacing:-1px;line-height:1.25;font-family:'Manrope',sans-serif;font-weight:600;font-size:30px;color:#e2dde9}.empty-state p{font-size:14px;line-height:1.7;color:#a8a4b2;margin:0 0 25px}.text-btn{background:none;color:#a89aba;font-size:12px;margin:13px;text-decoration:underline;text-underline-offset:4px}.drop-overlay{position:absolute;inset:12px;background:#292236ed;border:2px dashed var(--accent);border-radius:15px;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;pointer-events:none}.drop-overlay svg{width:45px;height:45px;color:var(--accent)}.drop-overlay strong{font-size:24px;color:#efe7ff}.drop-overlay span{font-size:14px;color:#b5a6ca}.toast{position:fixed;bottom:75px;left:50%;transform:translateX(-50%);background:#e6dfff;color:#382b4c;border:1px solid #b4a4d7;box-shadow:0 8px 25px #0003;padding:12px 19px;border-radius:9px;font-size:13px;z-index:100;max-width:90vw;text-align:center}.marquee{position:absolute;background:#c3b2ff15;border:1px solid #c3b2ff;pointer-events:none;z-index:8}dialog{background:#23242a;color:#c3c0ce;border:1px solid #48434f;border-radius:16px;width:470px;max-width:calc(100vw - 30px);padding:36px;box-shadow:0 30px 100px #0006}dialog::backdrop{background:#09080d99;backdrop-filter:blur(4px)}dialog h2{font-family:'Manrope',sans-serif;color:#f1eafc;font-size:26px;font-weight:600;letter-spacing:-.8px;margin:13px 0}dialog p{color:#a5a0b0;font-size:14px;line-height:1.7}dialog dl{margin:22px 0}dialog dl>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:9px 0;font-size:12px;border-bottom:1px solid #37343e}dialog dd{margin:0;white-space:nowrap}kbd{display:inline-block;background:#393340;color:#cfc0e0;border-radius:4px;font-size:11px;padding:3px 7px;font-family:inherit}.help-small{font-size:12px!important}.dialog-close{position:absolute;right:15px;top:15px}.dialog-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #3a3641}.dialog-bottom span{font-size:10px;color:#7d748a}.dialog-bottom .btn{font-size:12px}.sidebar-collapsed .sidebar{display:none}.sidebar-collapsed .view-label:before{content:'☰';padding:5px 10px;cursor:pointer}[hidden]{display:none!important}@media(min-width:1600px){.sidebar{width:270px}.library-item strong{width:160px}.topbar{padding-left:32px}}@media(max-width:1150px){.save-status{display:none}.header-actions{margin-left:auto}.header-divider{margin-left:0}.topbar{gap:18px}.sidebar{width:220px}.library-item strong{width:115px}}@media(max-width:900px){.sidebar{width:190px;padding:17px 10px}.board-nav strong{max-width:115px;font-size:11px}.library-item strong{width:96px;font-size:11px}.library-thumb{width:34px;height:34px}.header-actions .quiet{display:none}.topbar{padding:0 17px;height:73px;gap:13px}.workspace{height:calc(100dvh - 73px)}.board-heading input{width:185px;font-size:14px}.eyebrow{font-size:8px}.header-actions .btn{font-size:11px;padding:9px 12px;gap:6px}.brand{font-size:28px}.brand-mark{width:32px;height:32px;font-size:26px}.canvas-top{left:18px;right:18px}.view-label{font-size:10px}.collage-btn{font-size:10px;padding:8px 10px}.tool-rail{left:14px}#tool-hint{max-width:250px;line-height:1.6}.canvas-bottom{left:15px;bottom:14px;right:15px}}@media(max-width:650px){.sidebar{display:none}.header-divider,.board-heading .eyebrow{display:none}.topbar{height:65px;padding:0 12px;gap:11px}.workspace{height:calc(100dvh - 65px)}.brand{font-size:25px;gap:7px}.brand-mark{width:28px;height:28px;font-size:24px}.brand-mark span{font-size:14px;right:4px}.board-heading input{width:135px;font-size:12px}.header-actions{gap:5px}.header-actions .btn{font-size:0;padding:8px}.header-actions .btn svg{width:18px;height:18px}.canvas-top{top:15px;left:15px;right:15px}.view-label #canvas-count,.label-divider{display:none}.tool-rail{left:10px;padding:5px}.tool{height:34px;width:33px}.canvas-bottom{left:12px;right:12px;bottom:12px}#tool-hint{font-size:9px;max-width:180px;line-height:1.5}.empty-state{padding:55px}.empty-state h1{font-size:25px}.selection-bar{gap:7px;top:57px}.selection-bar span{font-size:10px}.selection-bar .note-colors{gap:4px}.note-colors button{width:15px;height:15px}}

/* Interface text stays legible; canvas contents follow the chosen zoom. */
.btn,.filter,.view-label{font-size:14px}.save-status,.eyebrow,.sidebar-header,.section-title,.board-nav span:not(.board-thumb),.library-item small,.sidebar-bottom strong,.sidebar-bottom p,.import-copy,.text-btn,#tool-hint,.zoom-controls button,.help-small,.dialog-bottom span{font-size:12px}.library-item strong,.board-nav strong{font-size:14px}.item-footer{font-size:12px}.item-footer .file-tag,.note-footer,.audio-label,.audio-meta{font-size:11px}.toast a{color:#382b4c;text-decoration:underline;text-underline-offset:3px;font-weight:600}.library-item{padding-top:10px;padding-bottom:10px}.sidebar-bottom p{line-height:1.5}.note-text{line-height:1.5}.canvas-top .collage-btn{font-size:13px}.filter-row{gap:0}.filter{padding:7px 9px}@media(max-width:900px){.board-nav strong,.library-item strong{font-size:12px}.sidebar-bottom strong,.sidebar-bottom p,.import-copy{font-size:12px}.view-label{font-size:12px}.canvas-top .collage-btn{font-size:12px}.eyebrow{font-size:10px}}@media(max-width:650px){.board-heading input{width:clamp(90px,25vw,135px)}.header-actions .btn{font-size:0}.view-label{font-size:12px}#tool-hint{font-size:11px;max-width:165px}.canvas-bottom{gap:5px}}
