:root{--accent:#6ea8fe;--accent-fg:#0b1220;--danger:#f87171;--ok:#4ade80;--warn:#fb923c;--radius:14px;--font:system-ui, -apple-system, "Segoe UI Variable", "Segoe UI", Roboto, sans-serif;font-family:var(--font)}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121316;--surface:#1c1e22db;--surface-solid:#1c1e22;--surface-2:#272a30;--hover:#ffffff14;--border:#ffffff1a;--text:#eceef1;--muted:#9aa1ac;--shadow:0 10px 34px #00000073}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f1f2f4;--surface:#ffffffe6;--surface-solid:#fff;--surface-2:#eef0f3;--hover:#0000000f;--border:#0000001f;--text:#17191c;--muted:#666d78;--shadow:0 10px 34px #00000029;--accent-fg:#fff}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;width:100%;height:100%;display:block;position:fixed;inset:0}.board[data-tool=hand]{cursor:grab}.board[data-tool=eraser]{cursor:cell}.glass{background:var(--surface);-webkit-backdrop-filter:blur(16px)saturate(1.4);border:1px solid var(--border);box-shadow:var(--shadow);touch-action:manipulation;-webkit-user-select:none;user-select:none}[data-focus=true] .chrome{opacity:0;pointer-events:none}.chrome{transition:opacity .2s}.btn{width:40px;height:40px;color:var(--text);background:0 0;border:0;border-radius:11px;place-items:center;padding:0;display:inline-grid;position:relative}.btn:hover:not(:disabled){background:var(--hover)}.btn.on{background:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent)}.btn:disabled{opacity:.3;cursor:default}.btn.sm{border-radius:9px;width:32px;height:32px}.sep{background:var(--border);align-self:stretch;width:1px;margin:4px 6px}.pill{border:1px solid var(--border);background:var(--surface-2);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.pill:hover:not(:disabled){filter:brightness(1.12)}.pill.primary{background:var(--accent);color:var(--accent-fg);border-color:#0000}.pill.danger{color:var(--danger)}.pill:disabled{opacity:.5;cursor:default}.text-input,.select{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;height:36px;padding:0 10px}.text-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.dock{z-index:20;border-radius:18px;align-items:center;gap:2px;padding:6px;display:flex;position:fixed}.dock[data-pos=bottom]{left:50%;bottom:max(14px, env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 20px);transform:translate(-50%)}.dock[data-pos=left]{left:max(12px, env(safe-area-inset-left));flex-direction:column;top:50%;transform:translateY(-50%)}.dock[data-pos=left] .sep{width:auto;height:1px;margin:6px 4px}.dock .group{align-items:center;gap:2px;display:flex}.dock[data-pos=left] .group{flex-direction:column}.swatch{border:2px solid #0000;border-radius:50%;width:26px;height:26px;margin:0 2px;padding:0;box-shadow:inset 0 0 0 1px #80808073}.swatch.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--surface-solid) inset}.swatch.big{width:30px;height:30px}.size{align-items:center;gap:8px;padding:0 6px;display:flex}.size .preview{place-items:center;width:30px;height:30px;display:grid}.size .preview i{background:var(--text);border-radius:50%;display:block}.dock[data-pos=left] .size{flex-direction:column}.dock[data-pos=left] .size input{width:44px}input[type=range]{width:100px;height:22px;accent-color:var(--accent);background:0 0}.pop{z-index:40;background:var(--surface-solid);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);border-radius:14px;padding:6px;position:absolute}.pop.up{bottom:calc(100% + 10px)}.pop.down{top:calc(100% + 8px)}.pop.right{right:0}.pop.center{left:50%;transform:translate(-50%)}.pop.side{top:0;left:calc(100% + 10px)}.anchor{display:inline-block;position:relative}.menu-item{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:14px;display:flex}.menu-item:hover{background:var(--hover)}.menu-item .check{width:16px;color:var(--accent);place-items:center;display:grid}.menu-item .hint{color:var(--muted);margin-left:auto;font-size:12px}.menu-item.danger{color:var(--danger)}.menu-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px 4px;font-size:11px;font-weight:700}.menu-sep{background:var(--border);height:1px;margin:5px 4px}.color-row{color:var(--muted);align-items:center;gap:8px;margin-top:10px;font-size:12px;display:flex}.color-row input[type=color]{border:1px solid var(--border);background:0 0;border-radius:8px;width:34px;height:28px;padding:0}.topbar{z-index:20;top:max(10px, env(safe-area-inset-top));border-radius:16px;align-items:center;gap:2px;width:fit-content;max-width:calc(100vw - 68px);padding:4px;display:flex;position:fixed;left:10px}.topbar .title{background:0 0;border:1px solid #0000;border-radius:9px;width:220px;max-width:34vw;height:36px;padding:0 10px;font-weight:650}.topbar .title:hover,.topbar .title:focus{border-color:var(--border);background:var(--surface-2);outline:none}.status{width:28px;height:36px;color:var(--ok);place-items:center;display:grid}.status.syncing{color:var(--muted)}.status.offline,.status.auth,.status.error{color:var(--warn)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar.viewer{gap:10px;padding:8px 14px}.badge{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}.popover-body{gap:10px;width:300px;padding:10px;font-size:14px;display:grid}.popover-body p{color:var(--muted);margin:0}.linkrow{gap:6px;display:flex}.linkrow input{flex:1;min-width:0;font-size:12px}.user-chip{z-index:25;top:max(10px, env(safe-area-inset-top));border-radius:50%;width:38px;height:38px;padding:2px;position:fixed;right:12px}.user-chip img{border-radius:50%;width:100%;height:100%;display:block}.zoombar{z-index:15;right:12px;bottom:max(14px, env(safe-area-inset-bottom));border-radius:14px;align-items:center;padding:4px;display:flex;position:fixed}.zoombar .pct{font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:9px;min-width:54px;height:32px;font-size:13px;font-weight:650}.zoombar .pct:hover{background:var(--hover)}.pagenav{z-index:15;left:12px;bottom:max(14px, env(safe-area-inset-bottom));border-radius:14px;align-items:center;gap:2px;padding:4px;display:flex;position:fixed}[data-dock=left] .pagenav{left:84px}.pagenav .page-input{text-align:center;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:8px;width:46px;height:32px;padding:0 4px;font-weight:650}.pagenav .page-input:hover,.pagenav .page-input:focus{border-color:var(--border);background:var(--surface-2);outline:none}.pagenav .total{color:var(--muted);white-space:nowrap;padding-right:6px;font-size:13px}.overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface-solid);border:1px solid var(--border);width:min(820px,100%);height:min(640px,100%);box-shadow:var(--shadow);border-radius:20px;grid-template-columns:190px 1fr;display:grid;position:relative;overflow:hidden}.modal nav{border-right:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:2px;padding:16px 10px;display:flex}.modal nav h2{margin:0 10px 12px;font-size:18px}.modal nav button{text-align:left;background:0 0;border:0;border-radius:10px;padding:10px 12px;font-size:14px}.modal nav button:hover{background:var(--hover)}.modal nav button.on{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent);font-weight:650}.modal .content{padding:22px 26px 30px;overflow:auto}.modal .close{position:absolute;top:10px;right:10px}.field{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding:13px 0;display:flex}.field:last-child{border-bottom:0}.field .label{gap:2px;font-weight:600;display:grid}.field .label small{color:var(--muted);font-size:12.5px;font-weight:400}.field .control{flex-shrink:0;align-items:center;gap:8px;display:flex}.section-title{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin:22px 0 4px;font-size:11px;font-weight:700}.section-title:first-child{margin-top:0}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:3px;display:inline-flex}.segmented button{background:0 0;border:0;border-radius:8px;height:30px;padding:0 12px;font-size:13px;font-weight:600}.segmented button.on{background:var(--accent);color:var(--accent-fg)}.switch{background:var(--surface-2);width:44px;height:26px;box-shadow:inset 0 0 0 1px var(--border);border:0;border-radius:999px;padding:0;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:20px;height:20px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent)}.switch.on:after{background:var(--accent-fg);transform:translate(18px)}.chips{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:330px;display:flex}.chip{border:2px solid #0000;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;display:grid;box-shadow:inset 0 0 0 1px #80808080}.chip.sq{border-radius:9px;width:auto;height:30px;padding:0 10px;font-size:12px;font-weight:600}.chip.on{border-color:var(--accent)}.keyrow{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 0;display:flex}.keyrow .name{flex:1}kbd{border:1px solid var(--border);background:var(--surface-2);min-width:90px;font:inherit;text-align:center;border-radius:8px;padding:5px 10px;font-size:12.5px}kbd.rec{border-color:var(--accent);color:var(--accent)}.palette{background:var(--surface-solid);border:1px solid var(--border);width:min(560px,100%);box-shadow:var(--shadow);border-radius:18px;align-self:start;margin-top:12vh;overflow:hidden}.palette input{border:0;border-bottom:1px solid var(--border);background:0 0;outline:none;width:100%;height:52px;padding:0 18px;font-size:16px}.palette ul{max-height:340px;margin:0;padding:6px;list-style:none;overflow:auto}.palette li{border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.palette li.sel{background:color-mix(in srgb, var(--accent) 22%, transparent)}.palette li .tag{color:var(--muted);margin-left:auto;font-size:12px}.palette .none{color:var(--muted);text-align:center;padding:18px}.toast{z-index:80;left:50%;top:max(16px, env(safe-area-inset-top));border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;animation:.18s ease-out pop;position:fixed;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-8px)}}.login{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100%;padding:24px;display:grid}.login h1{letter-spacing:-.03em;margin:0;font-size:44px}.login p{color:var(--muted);margin:0}.login .error{color:var(--danger)}.discord{color:#fff;background:#5865f2;border-radius:12px;margin-top:10px;padding:13px 24px;font-weight:650;text-decoration:none}.discord:hover{background:#4752c4}.home{max-width:1160px;margin:0 auto;padding:28px 22px 80px}.home header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:26px;padding-right:52px;display:flex}.home h1{letter-spacing:-.03em;margin:0 auto 0 0;font-size:32px}.home .search{width:240px}.empty{color:var(--muted);text-align:center;padding:60px 0}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;display:grid}.card{background:var(--surface-solid);border:1px solid var(--border);border-radius:16px;transition:transform .12s,border-color .12s;position:relative;overflow:hidden}.card:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--border));transform:translateY(-2px)}.card a{color:inherit;text-decoration:none;display:block}.thumb{aspect-ratio:3/2;color:#999;background:#f1f1ee;place-items:center;font-size:13px;display:grid}.thumb img{object-fit:cover;width:100%;height:100%}.card .meta{gap:3px;padding:11px 13px 13px;display:grid}.card .meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card .meta small{color:var(--muted);align-items:center;gap:8px;display:flex}.card .actions{opacity:0;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:8px;right:8px}.card:hover .actions,.card:focus-within .actions{opacity:1}@media (hover:none){.card .actions{opacity:1}}.card .actions .btn{background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border)}@media (width<=700px){.modal{grid-template-rows:auto 1fr;grid-template-columns:1fr}.modal nav{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.modal nav h2{display:none}.field{flex-wrap:wrap}}html,body,#root{height:100dvh;overflow:hidden}.home,.login{height:100%;overflow-y:auto}.dock[data-pos=bottom]{flex-wrap:nowrap;max-width:calc(100vw - 16px)}.dock .group.dim{opacity:.4}.quick{align-items:center;display:flex}.swatch.checker{background:repeating-conic-gradient(#80808073 0% 25%,#0000 0% 50%) 50%/10px 10px;position:relative;overflow:hidden}.swatch.checker>span{border-radius:50%;position:absolute;inset:0}.swatch.big{width:32px;height:32px;margin:0 3px}.size-chip i,.size-presets i{background:var(--text);border-radius:50%;display:block}.size-pop{width:236px;padding:8px}.size-presets{justify-content:space-between;display:flex}.size-row{align-items:center;gap:10px;padding:8px 6px 2px;display:flex}.size-row input{flex:1;width:auto}.size-row span{text-align:right;font-variant-numeric:tabular-nums;min-width:24px}.color-pop{width:256px;padding:12px}.color-grid{grid-template-columns:repeat(6,1fr);justify-items:center;gap:8px 2px;display:grid}.cp-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:14px 2px 8px;font-size:11px;font-weight:700}.cp{gap:12px;display:grid}.cp-sv{touch-action:none;cursor:crosshair;background:linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent), hsl(var(--hue) 100% 50%);border-radius:12px;height:150px;position:relative}.cp-hue{touch-action:none;cursor:pointer;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:8px;height:16px;margin:0 9px;position:relative}.cp-thumb{pointer-events:none;border:2px solid #fff;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;position:absolute;box-shadow:0 0 0 1px #00000073,0 2px 6px #00000073}.cp-hue .cp-thumb{top:50%}.cp-row{align-items:center;gap:8px;display:flex}.cp-preview{border:1px solid var(--border);border-radius:10px;flex-shrink:0;width:34px;height:34px}.cp-hex{flex:1;min-width:0;font-family:ui-monospace,Consolas,monospace}.focus-exit{z-index:70;right:12px;bottom:max(12px, env(safe-area-inset-bottom));opacity:.6;border-radius:999px;align-items:center;gap:7px;height:40px;padding:0 14px;font-size:13px;font-weight:650;display:inline-flex;position:fixed}.focus-exit:hover,.focus-exit:active{opacity:1}.pen-test{border:1px dashed var(--border);background:var(--surface-2);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:12px;gap:6px;margin:8px 0;padding:14px;font-size:13px;display:grid}.pen-test span{color:var(--muted)}.pen-test code{font-family:ui-monospace,Consolas,monospace;font-size:12px}@media (pointer:coarse){.btn{border-radius:13px;width:46px;height:46px}.btn.sm{width:42px;height:42px}.swatch{width:30px;height:30px}.swatch.big{width:38px;height:38px}.pill,.topbar .title,.status{height:44px}.menu-item{padding:13px 12px}.zoombar .pct,.pagenav .page-input{height:42px}input[type=range]{height:32px}.dock{padding:7px}}@media (width<=1400px){[data-dock=bottom] .zoombar,[data-dock=bottom] .pagenav{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 62px)}}@media (width<=1400px) and (pointer:coarse){[data-dock=bottom] .zoombar,[data-dock=bottom] .pagenav{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 72px)}}@media (width<=1000px){.quick{display:none}}@media (width<=700px){.topbar .title{width:120px}.dock .group .btn{width:40px}}
