:root{--ground: #0f1012;--surface: #17181b;--raised: #1f2125;--sunken: #0a0b0c;--ink: #e8e6df;--ink-2: #b9b7b0;--muted: #7d7c77;--faint: #55544f;--rule: #26282c;--rule-strong: #35383d;--accent: #ff7a45;--accent-ink: #1a0d07;--accent-soft: #2b1b14;--danger: #e5604f;--ok: #6bbf8a;--ants-dark: #0b0b0c;--ants-light: #f6f5f1;--checker-a: #2a2c30;--checker-b: #1c1e22;--paper: #f4f2ec;--thumb-a: #ffffff;--thumb-b: #e4e3de;--font: "Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", sans-serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--r-sm: 4px;--r-md: 8px;--r-lg: 14px;--dur: .12s;--ease: cubic-bezier(.4, 0, .2, 1);--bar-h: 48px;--sidebar-w: 56px}[data-theme=light]{--ground: #f4f2ec;--surface: #ffffff;--raised: #ffffff;--sunken: #ebe9e2;--ink: #1b1a17;--ink-2: #4b4a45;--muted: #7d7c77;--faint: #aaa9a3;--rule: #e2e0d8;--rule-strong: #cfcdc4;--accent-soft: #fde9df;--checker-a: #e6e4dc;--checker-b: #d6d4cc}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;overscroll-behavior:none;-webkit-touch-callout:none}h1,h2,h3,p,figure{margin:0}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;touch-action:manipulation}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:500;color:var(--ink-2);text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.btn:hover{background:var(--raised);color:var(--ink)}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(1.08)}.btn--danger{color:var(--danger)}.btn[disabled]{opacity:.45;cursor:not-allowed}.field{display:block;width:100%;padding:var(--sp-2) var(--sp-3);background:var(--sunken);color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--r-md);transition:border-color var(--dur) var(--ease)}.field:focus{outline:none;border-color:var(--accent)}.label{display:block;font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--sp-1)}.label .field{margin-top:var(--sp-1)}.notice{padding:var(--sp-3) var(--sp-4);border-left:3px solid var(--danger);background:var(--surface);color:var(--ink-2);font-size:var(--text-sm)}.btn--inline{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}.btn--inline:hover{color:var(--ink)}.notice--quiet{border-left-color:var(--rule-strong);color:var(--muted)}.muted{color:var(--muted)}.app{display:flex;flex-direction:column;height:100%;min-height:0}.topbar{display:flex;align-items:center;gap:var(--sp-3);height:var(--bar-h);padding:0 var(--sp-4);border-bottom:1px solid var(--rule);background:var(--surface);padding-top:env(safe-area-inset-top);box-sizing:content-box}.topbar__title{font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}.topbar__status{font-size:var(--text-xs);color:var(--muted);padding:2px var(--sp-2);border-radius:999px;background:var(--raised)}.topbar__status[data-status=offline]{color:var(--danger)}.topbar__spacer{flex:1}.topbar__who{font-size:var(--text-sm);color:var(--muted)}.notice--bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.trash{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4)}.trash__row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--surface)}.trash__title{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md)}.trash__head[data-armed]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--danger)}.trash__warn{color:var(--danger);font-size:var(--text-sm)}.batch-tags{display:flex;flex-direction:column;gap:var(--sp-2);margin:0 var(--sp-4) var(--sp-2);padding:var(--sp-3);border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface);max-width:560px}.batch-tags__head{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);font-weight:600}.batch-tags__hint{margin:0;font-size:var(--text-sm);color:var(--muted)}.batch-tags__list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;max-height:280px;overflow:auto}.batch-tags__row{display:flex;align-items:center;gap:var(--sp-2);padding:2px var(--sp-2);border-radius:var(--r-sm);font-size:var(--text-sm)}.batch-tags__row:hover{background:var(--raised)}.batch-tags__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.batch-tags__count{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.batch-tags__row[data-coverage=some] .batch-tags__count{color:var(--accent)}.notice__actions{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.shelf{flex:1;display:grid;grid-template-columns:216px minmax(0,1fr);min-height:0}.rail{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:var(--sp-4) var(--sp-2);border-right:1px solid var(--rule);overflow:auto}.rail__row{display:flex;align-items:center}.rail__row .rail__item{min-width:0}.rail__item{width:100%;display:flex;align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--text-sm);text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.rail__item:hover{background:var(--surface)}.rail__item[data-active=true]{background:var(--raised);color:var(--ink)}.rail__item[data-drop]{background:var(--accent-soft);color:var(--ink);box-shadow:inset 0 0 0 2px var(--accent)}.rail__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail__count{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.rail__add{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);color:var(--muted);font-size:var(--text-sm);text-align:left}.rail__add:hover{color:var(--ink);background:var(--surface)}.rail__field{font-size:var(--text-sm)}.rail__label{margin:var(--sp-4) var(--sp-3) var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--rule);color:var(--faint);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.rail__hint{margin:0 var(--sp-3) var(--sp-1);color:var(--faint);font-size:var(--text-xs);line-height:1.45}.tag-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--rule-strong)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border:1px solid var(--rule-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:var(--text-xs);white-space:nowrap}.chip:hover{color:var(--ink);border-color:var(--accent)}.chip--static,.chip--static:hover{border-color:var(--rule);color:var(--muted);cursor:default}.tile__tags{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-1)}.swatches{display:flex;flex-wrap:wrap;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3) var(--sp-2)}.swatches__one{width:18px;height:18px;border-radius:50%;border:1px solid var(--rule-strong);background:var(--rule-strong)}.swatches__one[data-active]{box-shadow:0 0 0 2px var(--ground),0 0 0 3px var(--ink)}.gallery{flex:1;overflow:auto;min-width:0;padding:var(--sp-5) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom))}.gallery__bar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.gallery__where{font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;margin:0}.gallery__count{color:var(--muted);font-size:var(--text-sm)}.gallery__slot{border-radius:var(--r-md)}.gallery__slot[data-drop]{box-shadow:inset 3px 0 0 0 var(--accent)}.segmented{display:flex;padding:2px;gap:2px;border-radius:var(--r-md);background:var(--sunken)}.segmented__item{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);font-size:var(--text-xs);color:var(--muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.segmented__item[data-active=true]{background:var(--raised);color:var(--ink)}.field--search{width:180px;padding:var(--sp-1) var(--sp-3);font-size:var(--text-sm)}.gallery__empty{display:grid;place-items:center;gap:var(--sp-4);height:60vh;color:var(--muted)}.gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-4)}.tile{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;border-radius:var(--r-md);padding:var(--sp-2);transition:background var(--dur) var(--ease)}.tile:hover{background:var(--surface)}.tile__open{display:block;width:100%;position:relative}.tile[data-selected]{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}.tile__check{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:1;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--accent);background:var(--ground);color:var(--accent);font-size:var(--text-sm);line-height:1.25rem;text-align:center}.tile[data-dragging]{opacity:.45}.tile[data-selected] .tile__check{background:var(--accent);color:var(--accent-ink)}.btn[data-active]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tile__foot{display:flex;align-items:center;gap:var(--sp-1);min-width:0}.tile__field{font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2)}.tile__news{display:inline-block;min-width:1.4em;margin-left:var(--sp-1);padding:0 var(--sp-1);border-radius:999px;background:var(--accent);color:var(--surface);font-size:var(--text-xs);line-height:1.4;text-align:center;vertical-align:middle}.tile__pin{color:var(--accent);font-size:.5rem;vertical-align:middle;margin-right:var(--sp-1)}.menu{position:relative;display:inline-flex}.menu__button{width:24px;height:24px;border-radius:var(--r-sm);color:var(--muted);line-height:1}.menu__button:hover,.menu__button[aria-expanded=true]{background:var(--raised);color:var(--ink)}.menu__scrim{position:fixed;inset:0;z-index:20;cursor:default}.menu__list{position:absolute;top:100%;right:0;z-index:21;min-width:160px;max-height:320px;overflow:auto;padding:var(--sp-1);border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--raised);box-shadow:0 12px 32px #00000073}.menu__item{display:block;width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--ink-2);font-size:var(--text-sm);text-align:left;white-space:nowrap}.menu__item:hover{background:var(--surface);color:var(--ink)}.menu__item[data-active=true]{color:var(--accent)}.menu__item--danger{color:var(--danger)}.menu__label{padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--text-xs);color:var(--faint);text-transform:uppercase;letter-spacing:.06em}.tile__thumb{display:grid;place-items:center;aspect-ratio:1;border-radius:var(--r-sm);background:var(--sunken)}.tile__paper{display:block;background:var(--paper);border-radius:2px;box-shadow:0 2px 10px #00000073}.tile__title{font-size:var(--text-sm);font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile__meta{font-size:var(--text-xs);color:var(--muted)}.sheet{position:fixed;inset:0;display:grid;place-items:center;background:#0000008c;padding:var(--sp-4);z-index:10}.sheet__card{width:min(560px,100%);max-height:calc(100vh - 2 * var(--sp-4));overflow:auto;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.sheet__title{font-size:var(--text-lg);font-weight:600}.sheet__subtitle{font-size:var(--text-md);font-weight:600;padding-top:var(--sp-2);border-top:1px solid var(--rule)}.sheet__actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.sheet__note{font-size:var(--text-sm);color:var(--muted);background:var(--sunken);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--sp-3);line-height:1.5}.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-2)}.preset{display:flex;flex-direction:column;gap:2px;text-align:left;padding:var(--sp-3);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--sunken);transition:border-color var(--dur) var(--ease)}.preset:hover{border-color:var(--rule-strong)}.preset[data-active=true]{border-color:var(--accent);background:var(--accent-soft)}.preset__name{font-size:var(--text-sm);font-weight:500}.preset__size{font-size:var(--text-xs);color:var(--muted)}.preset--saved{position:relative;border-style:dashed}.preset--saved:disabled{opacity:.45;border-style:dashed}.preset__remove{position:absolute;top:2px;right:var(--sp-2);color:var(--faint);font-size:var(--text-sm);line-height:1;cursor:pointer}.preset__rename{position:absolute;top:2px;right:calc(var(--sp-2) + 1.1em);color:var(--faint);font-size:var(--text-sm);line-height:1;cursor:pointer}.preset__rename:hover{color:var(--accent)}.preset__remove:hover{color:var(--danger)}.fields{display:flex;flex-direction:column;gap:var(--sp-3)}.fields__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.signin{min-height:100%;display:grid;place-items:center;padding:var(--sp-5)}.signin__card{width:min(420px,100%);display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start}.signin__mark{width:48px;height:48px;border-radius:14px;background:var(--accent)}.signin__title{font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em}.signin__sub{color:var(--ink-2);max-width:36ch}.gsi{min-height:44px}.signin__jovana{display:block;width:min(260px,100%);margin:0 auto;min-height:44px;padding:0 1rem;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}.signin__jovana:hover{opacity:.85}.signin__sub--quiet{opacity:.7;font-size:.85em}.canvas-shell{display:flex;flex-direction:column;height:100%;background:var(--sunken)}.canvas-shell__bar{display:flex;align-items:center;gap:var(--sp-3);height:var(--bar-h);padding:0 var(--sp-3);background:var(--surface);border-bottom:1px solid var(--rule)}.canvas-shell__title{font-size:var(--text-sm);font-weight:500}.tabs{flex:1 1 auto;min-width:96px;display:flex;align-items:center;gap:var(--sp-1);overflow-x:auto;scrollbar-width:none}.tabs__tab{flex:0 1 auto;min-width:72px;max-width:200px;display:flex;align-items:center;border-radius:var(--r-md);color:var(--ink-2)}.tabs__tab:hover{background:var(--raised)}.tabs__tab[data-active]{background:var(--sunken);color:var(--ink);box-shadow:inset 0 -2px 0 0 var(--accent)}.tabs__tab[data-dragging]{opacity:.5}.tabs__open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2);font-size:var(--text-sm);font-weight:500;color:inherit}.tabs__picture{flex:none;width:20px;height:20px;border-radius:var(--r-sm);overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 1px var(--rule)}.tabs__picture img{width:100%;height:100%;object-fit:cover;display:block}.tabs__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs__unsaved{color:var(--accent);font-size:var(--text-xs)}.tabs__close,.tabs__add{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--muted);font-size:var(--text-base)}.tabs__close:hover,.tabs__add:hover{background:var(--raised);color:var(--ink)}.canvas-shell__elsewhere{flex:1;display:grid;place-content:center;justify-items:center;gap:var(--sp-4);padding:var(--sp-5);color:var(--muted);text-align:center}.canvas-shell__stage{flex:1;display:grid;place-items:center;min-height:0}.bench{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.jc-stage{position:relative;overflow:hidden;background:var(--sunken);touch-action:none}.jc-stage[data-dropping=true]:after{content:"";position:absolute;inset:var(--sp-2);border:2px dashed var(--accent);border-radius:var(--r-lg);pointer-events:none;z-index:3}.jc-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none}.jc-plugin__frame{position:absolute;width:1px;height:1px;border:0;opacity:0;pointer-events:none}.jc-plugin__code{width:100%;min-height:160px;font-family:var(--mono);font-size:12px;resize:vertical}.jc-plugin__scopes{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-1) var(--sp-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.jc-plugin__warn{color:var(--danger)}.jc-plugin__list{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.jc-plugin__item{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--raised)}.jc-plugin__ask{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-md)}.jc-plugin__ask>.sheet__subtitle{border-top:0;padding-top:0}.jc-plugin__log{max-height:120px;overflow:auto;font-family:var(--mono);font-size:11px;white-space:pre-wrap;margin:0}.jc-comic{position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);z-index:5}.jc-comic__rows input[type=text]{width:96px}.jc-comic__picks{display:flex;flex-wrap:wrap;gap:var(--sp-1);max-width:220px}.jc-panels{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.jc-panels__panel>polygon{fill:none;stroke:var(--accent);stroke-opacity:.55;stroke-width:1.5;stroke-dasharray:6 4}.jc-panels__panel[data-active]>polygon{stroke-opacity:1;stroke-dasharray:none;stroke-width:2}.jc-panels__panel>text{fill:var(--accent);font-size:12px;font-weight:600;opacity:.5;pointer-events:none}.jc-panels__hit{fill:transparent;stroke:none;pointer-events:auto;cursor:pointer}.jc-canvas-sheet__pixel{display:grid;grid-template-columns:auto 1fr;gap:0 var(--sp-2);align-items:center}.jc-canvas-sheet__pixel>.sheet__note{grid-column:2}.jc-canvas[data-moving=true]{cursor:move}.jc-right{position:absolute;top:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2);pointer-events:none}.jc-right>*{pointer-events:auto}.jc-tools{display:flex;flex:0 1 auto;min-height:0;overflow-y:auto;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);background:color-mix(in srgb,var(--raised) 88%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);width:148px}.jc-tool{font:inherit;font-size:var(--text-lg);height:40px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer}.jc-tool[data-active=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.jc-select,.jc-color{font:inherit;font-size:var(--text-sm);background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-md);height:34px;padding:0 var(--sp-2)}.jc-color{padding:2px;width:100%}.jc-slider{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}.jc-slider input{width:100%;accent-color:var(--accent)}.jc-bar__group{display:flex;gap:var(--sp-2);margin-left:var(--sp-4)}.jc-status{margin-left:auto;font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.bench__bar{display:flex;align-items:center;gap:var(--sp-4);height:var(--bar-h);padding:0 var(--sp-4);border-bottom:1px solid var(--rule)}.bench__bar h1{font-size:var(--text-md);margin:0}.bench__stage{position:relative;height:calc(100vh - var(--bar-h));background:var(--sunken)}.bench__hud{position:absolute;left:var(--sp-4);bottom:var(--sp-4);padding:var(--sp-3);background:color-mix(in srgb,var(--raised) 90%,transparent);border:1px solid var(--rule);border-radius:var(--r-md);font-size:var(--text-sm);font-variant-numeric:tabular-nums;line-height:1.6}.bench__body{padding:var(--sp-5);max-width:720px}.bench__log{font-size:var(--text-xs);color:var(--ink-2);background:var(--sunken);padding:var(--sp-3);border-radius:var(--r-md);max-height:320px;overflow:auto}.jc-layers{position:absolute;top:var(--sp-4);left:var(--sp-4);bottom:var(--sp-4);width:232px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--raised) 88%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden}.jc-layers__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);font-size:var(--text-sm)}.jc-layers__count{margin-right:auto;color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.jc-layers__list{list-style:none;margin:0;padding:var(--sp-1) 0;overflow-y:auto;flex:1}.jc-layer{position:relative;display:flex;align-items:center;gap:2px;padding-right:var(--sp-1);height:34px;border-left:2px solid transparent}.jc-layer[data-active=true]{background:var(--accent-soft);border-left-color:var(--accent)}.jc-layer[data-drop=true]:hover{box-shadow:inset 0 2px 0 0 var(--accent)}.jc-layer__select{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-1);font:inherit;font-size:var(--text-sm);background:none;border:0;color:var(--ink);text-align:left;cursor:pointer;padding:0}.jc-layer__twist{width:12px;color:var(--muted);transition:transform var(--dur) var(--ease);display:inline-block}.jc-layer__twist[data-expanded=true]{transform:rotate(90deg)}.jc-layer__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-thumb{display:block;flex:none;background-color:var(--thumb-b);background-image:linear-gradient(45deg,var(--thumb-a) 25%,transparent 25%),linear-gradient(-45deg,var(--thumb-a) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--thumb-a) 75%),linear-gradient(-45deg,transparent 75%,var(--thumb-a) 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;border:1px solid var(--rule);border-radius:var(--r-sm);object-fit:contain}.jc-layer__thumb{height:26px;width:auto;max-width:40px}.jc-layer__thumb-slot{flex:none;width:26px}.jc-layer__mask .jc-thumb{display:inline-block;height:20px;width:auto;max-width:30px;vertical-align:middle}.jc-layer__mask[data-editing=true] .jc-thumb{outline:2px solid var(--accent)}.jc-frame__thumb{height:44px;width:auto;max-width:78px;margin-bottom:2px}.jc-layer[data-kind=group] .jc-layer__name{font-weight:600}.jc-layer[data-kind=adjustment] .jc-layer__name{font-style:italic}.jc-layer__adjust{cursor:pointer;color:var(--accent)}.jc-layers__adding{display:flex;flex-direction:column;padding:var(--sp-1) var(--sp-2);gap:2px;border-bottom:1px solid var(--rule)}.jc-layers__adding-item{text-align:left;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);font-size:var(--text-sm)}.jc-layers__adding-item:hover{background:var(--raised)}.jc-layer__badges{margin-left:auto;display:flex;gap:2px;color:var(--muted);font-size:var(--text-xs);font-weight:400}.jc-icon{font:inherit;font-size:var(--text-sm);width:26px;height:26px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-2);cursor:pointer;flex:none}.jc-icon:hover{background:var(--surface)}.jc-layer__eye[data-off=true]{color:var(--faint)}.jc-layer__menu{position:absolute;z-index:3;top:30px;right:var(--sp-2);margin:0;padding:var(--sp-1);list-style:none;min-width:168px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-md);box-shadow:0 12px 32px #00000073}.jc-layer__menu button{width:100%;text-align:left;font:inherit;font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2);border:0;border-radius:var(--r-sm);background:none;color:var(--ink);cursor:pointer}.jc-layer__menu button:hover{background:var(--raised)}.jc-layer__danger{color:var(--danger)}.jc-layers__props{border-top:1px solid var(--rule);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.jc-layers__props .jc-slider span{display:flex;justify-content:space-between}.jc-layers__open{position:absolute;top:var(--sp-4);left:var(--sp-4);width:40px;height:40px;font:inherit;font-size:var(--text-lg);background:color-mix(in srgb,var(--raised) 88%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);color:var(--ink-2);cursor:pointer;backdrop-filter:blur(12px)}.jc-tool--wide{font-size:var(--text-sm);height:32px;border-color:var(--rule)}.jc-tolerance{display:flex;flex-direction:column;gap:2px;align-items:stretch;font-size:var(--text-xs);color:var(--muted)}.jc-tolerance input{width:100%}.jc-note{margin:0;font-size:var(--text-xs);color:var(--muted);line-height:1.35}.tile__preview{object-fit:contain;background:var(--paper);border-radius:2px;box-shadow:0 1px 6px #00000059}.jc-layer__mask{cursor:pointer}.jc-layer__mask[data-editing=true]{color:var(--accent)}.jc-color-panel{margin-top:auto;width:268px;flex:0 1 auto;min-height:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden}.jc-color-panel__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.jc-color-panel__bar strong{margin-right:auto;font-weight:500;color:var(--ink-2)}.jc-color-panel__tabs{display:flex;border-bottom:1px solid var(--rule)}.jc-color-panel__tabs button{flex:1;font:inherit;font-size:var(--text-xs);padding:var(--sp-2) 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer}.jc-color-panel__tabs button[data-active=true]{color:var(--ink);border-bottom-color:var(--accent)}.jc-color-panel__body{padding:var(--sp-3);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-3)}.jc-swatch{width:28px;height:28px;padding:0;border:1px solid var(--rule-strong);border-radius:var(--r-sm);cursor:pointer;flex:none}.jc-swatch--current{width:22px;height:22px;cursor:default}.jc-swatch[data-active=true]{outline:2px solid var(--accent);outline-offset:1px}.jc-swatch[data-over=true]{outline:2px dashed var(--ink-2);outline-offset:1px}.jc-swatch--wide{width:100%;height:34px;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-variant-numeric:tabular-nums}.jc-swatch--wide span{color:var(--paper);mix-blend-mode:difference}.jc-disc{position:relative;width:100%;aspect-ratio:1;touch-action:none}.jc-disc__ring{width:100%;height:100%;display:block}.jc-disc__square{position:absolute;border-radius:var(--r-sm);touch-action:none}.jc-disc__square,.jc-classic__square{background-image:linear-gradient(to top,var(--sunken),transparent),linear-gradient(to right,var(--paper),transparent);background-blend-mode:multiply,screen}.jc-classic__square{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--r-md);touch-action:none}.jc-dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid var(--paper);border-radius:50%;box-shadow:0 0 0 1px var(--sunken);pointer-events:none}.jc-dot--sv{width:16px;height:16px;margin:-8px 0 0 -8px}.jc-classic,.jc-value,.jc-harmony,.jc-palettes{display:flex;flex-direction:column;gap:var(--sp-3)}.jc-color-slider{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}.jc-color-slider span{display:flex;justify-content:space-between}.jc-color-slider em{font-style:normal;color:var(--ink-2);font-variant-numeric:tabular-nums}.jc-color-slider input{width:100%;height:14px;appearance:none;border-radius:7px;border:1px solid var(--rule)}.jc-color-slider input::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--paper);background:transparent;box-shadow:0 0 0 1px var(--sunken)}.jc-color-slider input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;border:2px solid var(--paper);background:transparent}.jc-color-hex{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--muted)}.jc-color-hex input{flex:1;font:inherit;font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-sm);height:28px;padding:0 var(--sp-2)}.jc-harmony__set{display:flex;flex-direction:column;gap:var(--sp-1)}.jc-palettes__row{display:flex;align-items:center;gap:var(--sp-2)}.jc-palettes__row .jc-select{flex:1;min-width:0}.jc-palettes__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-1);touch-action:none}.jc-palettes__grid .jc-swatch{width:100%;aspect-ratio:1;height:auto}.jc-palettes__grid .jc-note{grid-column:1 / -1}.jc-palettes__actions{display:flex;flex-direction:column;gap:var(--sp-1)}.jc-palettes__export{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--muted)}.jc-palettes__export .jc-icon{width:auto;padding:0 var(--sp-1);border:1px solid var(--rule)}.jc-tool--wide:disabled,.jc-icon:disabled{color:var(--faint);cursor:default}.jc-icon[data-active=true]{color:var(--accent);background:var(--accent-soft)}.jc-color{position:relative;height:34px;width:100%;padding:0;border:1px solid var(--rule-strong);border-radius:var(--r-md);cursor:pointer}.jc-color__hex{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--paper);mix-blend-mode:difference}.jc-studio{position:absolute;top:var(--sp-4);left:var(--sp-4);bottom:var(--sp-4);width:340px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--raised) 94%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden;z-index:1}.jc-studio__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-bottom:1px solid var(--rule)}.jc-studio__name{flex:1;min-width:0;font:inherit;font-size:var(--text-sm);background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-sm);height:28px;padding:0 var(--sp-2)}.jc-studio__save{flex:none;height:28px;padding:0 var(--sp-3);background:var(--accent-soft);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-sm);font:inherit;font-size:var(--text-xs);cursor:pointer}.jc-studio__save:hover{border-color:var(--accent)}.jc-studio__note{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--rule)}.jc-studio__body{display:flex;flex:1;min-height:0}.jc-studio__tabs{display:flex;flex-direction:column;width:118px;flex:none;border-right:1px solid var(--rule);overflow-y:auto}.jc-studio__tabs button{font:inherit;font-size:var(--text-xs);text-align:left;padding:var(--sp-2);border:0;border-left:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer}.jc-studio__tabs button[data-active=true]{color:var(--ink);border-left-color:var(--accent);background:var(--surface)}.jc-studio__fields{flex:1;min-width:0;overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.jc-studio__field{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}.jc-studio__field span{display:flex;justify-content:space-between;gap:var(--sp-2)}.jc-studio__field em{font-style:normal;color:var(--ink-2);font-variant-numeric:tabular-nums}.jc-studio__field input[type=range]{width:100%;accent-color:var(--accent)}.jc-studio__text{font:inherit;font-size:var(--text-sm);background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-sm);height:26px;padding:0 var(--sp-2)}.jc-studio__check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--ink-2)}.jc-studio__check input{accent-color:var(--accent)}.jc-studio__group{border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--sp-2);margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}.jc-studio__group legend{font-size:var(--text-xs);color:var(--ink-2);padding:0 var(--sp-1)}.jc-studio__curve{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--muted)}.jc-studio__curve svg{width:100%;height:90px;touch-action:none}.jc-studio__curve-bg{fill:var(--sunken);stroke:var(--rule)}.jc-studio__curve-line{fill:none;stroke:var(--accent);stroke-width:2}.jc-studio__curve-dot{fill:var(--paper);stroke:var(--accent);stroke-width:2;cursor:grab}.jc-right{flex-direction:row;align-items:stretch}.jc-right__col{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2);min-height:0}.jc-brushes{display:flex;flex-direction:column;width:380px;min-height:0;background:color-mix(in srgb,var(--raised) 94%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden}.jc-brushes__bar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);font-size:var(--text-sm)}.jc-brushes__bar strong{margin-right:auto;font-weight:600}.jc-brushes__body{display:flex;flex:1;min-height:0}.jc-brushes__sets{display:flex;flex-direction:column;width:124px;flex:none;border-right:1px solid var(--rule);overflow-y:auto}.jc-brushes__sets button{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.jc-brushes__sets button span{margin-left:auto;color:var(--faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.jc-brushes__sets button[data-active=true]{background:var(--accent-soft);color:var(--ink)}.jc-brushes__list{list-style:none;margin:0;padding:var(--sp-1);flex:1;min-width:0;overflow-y:auto}.jc-brush{display:block;width:100%;padding:var(--sp-1) var(--sp-2) var(--sp-2);background:none;border:1px solid transparent;border-radius:var(--r-md);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer}.jc-brush:hover{background:color-mix(in srgb,var(--surface) 60%,transparent)}.jc-brush[data-active=true]{border-color:var(--accent);color:var(--ink)}.jc-brush__mark{display:block;height:46px;overflow:hidden}.jc-brush__mark img{display:block;width:100%;height:auto;margin-top:-4px}.jc-brush__name{display:block;font-size:var(--text-sm)}.jc-brushes__list li{position:relative}.jc-brush__remove{position:absolute;top:var(--sp-1);right:var(--sp-1);opacity:0}.jc-brushes__list li:hover .jc-brush__remove,.jc-brush__remove:focus-visible{opacity:1}.gallery__shared{margin-top:var(--sp-5)}.gallery__shared-title{margin:0 0 var(--sp-2);font-size:var(--text-md);font-weight:600;color:var(--ink-2)}.jc-share__row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--ink-2)}.jc-share__row span{flex:1;min-width:0}.jc-saved-selections{display:flex;flex-direction:column;gap:2px;padding-top:var(--sp-1);border-top:1px solid var(--rule)}.jc-saved-selections__row{display:flex;align-items:center;gap:2px}.jc-saved-selections__load{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.jc-brushes__search{margin:var(--sp-2);width:calc(100% - 2 * var(--sp-2))}.jc-brushes__group{padding:var(--sp-2) var(--sp-3) var(--sp-1);color:var(--faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--rule)}.jc-brushes__sets .jc-brushes__new{color:var(--accent)}.jc-brushes__name{margin:var(--sp-1);font-size:var(--text-sm)}.jc-brushes__list .jc-brushes__shelfbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2) var(--sp-2);color:var(--muted);font-size:var(--text-xs)}.jc-brush__remove[data-active]{opacity:1}.jc-brush__menu{display:flex;flex-direction:column;gap:var(--sp-1);margin:0 var(--sp-2) var(--sp-2);padding:var(--sp-2);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface);font-size:var(--text-sm)}.jc-brush__delete{align-self:flex-start;color:var(--danger)}.jc-brush__steps{display:flex;gap:var(--sp-1)}.jc-brushes__sets [data-dragging],.jc-brushes__list [data-dragging]{opacity:.45}.jc-brushes__sets [data-drop=before],.jc-brushes__list [data-drop=before]{box-shadow:inset 0 2px 0 var(--ink-2)}.jc-brushes__sets [data-drop=after],.jc-brushes__list [data-drop=after]{box-shadow:inset 0 -2px 0 var(--ink-2)}.jc-ring{position:absolute;left:0;top:0;pointer-events:none;border-radius:50%;opacity:0;border:1px solid rgba(255,255,255,.85);box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #00000073;z-index:2}.jc-ring[data-small=true]{background:#ffffffd9}.jc-ring[data-fill=true]{background:color-mix(in srgb,var(--jc-ring-fill, transparent) 28%,transparent)}.jc-ring__nib{position:absolute;left:0;top:50%;width:100%;height:1px;margin-top:-.5px;background:#ffffffe6;box-shadow:0 0 0 1px #00000073;border-radius:1px;display:none}.jc-studio__pad{display:flex;align-items:center;justify-content:center;height:54px;flex:none;border-bottom:1px solid var(--rule);background:var(--sunken);color:var(--faint);font-size:var(--text-xs);overflow:hidden}.jc-studio__pad img{display:block;width:100%;height:auto}.jc-sidebar{position:absolute;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:color-mix(in srgb,var(--raised) 86%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);z-index:2}.jc-sidebar[data-side=left]{left:var(--sp-4)}.jc-sidebar[data-side=right]{right:var(--sp-4)}.jc-sidebar[data-side=left][data-shifted=true]{left:calc(var(--sp-4) + 232px + var(--sp-2))}.jc-sidebar[data-side=right][data-shifted=true]{right:calc(var(--sp-4) + 300px + var(--sp-2))}.jc-vslider{position:relative;width:34px;height:160px;border-radius:var(--r-md);background:var(--sunken);border:1px solid var(--rule);overflow:visible;touch-action:none;cursor:ns-resize}.jc-vslider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.jc-vslider__fill{position:absolute;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--accent) 70%,var(--raised));border-radius:0 0 var(--r-md) var(--r-md);pointer-events:none}.jc-vslider__label{position:absolute;inset:auto 0 4px;text-align:center;font-size:var(--text-xs);color:var(--ink);mix-blend-mode:difference;pointer-events:none}.jc-vslider__value{position:absolute;top:50%;left:calc(100% + var(--sp-2));transform:translateY(-50%);padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--ground);border:1px solid var(--rule-strong);color:var(--ink);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}.jc-sidebar[data-side=right] .jc-vslider__value{left:auto;right:calc(100% + var(--sp-2))}.jc-sidebar__modify,.jc-sidebar__flip{width:34px;height:34px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);color:var(--ink-2);font:inherit;cursor:pointer;touch-action:none}.jc-sidebar__flip{height:24px;color:var(--faint)}.jc-sidebar__modify[data-active=true]{border-color:var(--accent);color:var(--accent)}.jc-quick{position:fixed;inset:0;z-index:40}.jc-quick__ring{position:absolute;width:0;height:0}.jc-quick__item{position:absolute;left:-46px;top:-30px;width:92px;height:60px;display:grid;place-items:center;gap:0;background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--rule);border-radius:var(--r-md);backdrop-filter:blur(12px);color:var(--ink-2);font:inherit;cursor:pointer}.jc-quick__item[data-active=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.jc-quick__glyph{font-size:var(--text-md);line-height:1}.jc-quick__label{font-size:var(--text-xs)}.jc-quick__hub{position:absolute;left:-34px;top:-13px;width:68px;height:26px;display:grid;place-items:center;border-radius:999px;background:var(--ground);border:1px solid var(--rule-strong);color:var(--muted);font-size:var(--text-xs);pointer-events:none}.jc-recent{display:flex;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);overflow-x:auto}.jc-recent .jc-swatch{flex:none;cursor:pointer}.jc-ants{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.jc-ants__under,.jc-ants__over,.jc-ants__band{fill:none;stroke-width:1;vector-effect:non-scaling-stroke;shape-rendering:crispEdges}.jc-ants__under{stroke:var(--ants-dark)}.jc-ants__over{stroke:var(--ants-light);stroke-dasharray:4 4;animation:jc-ants-crawl .6s linear infinite}.jc-ants__band{stroke:var(--ants-light);stroke-dasharray:4 4;filter:drop-shadow(0 0 1px var(--ants-dark));animation:jc-ants-crawl .6s linear infinite}@keyframes jc-ants-crawl{to{stroke-dashoffset:-8}}@media (prefers-reduced-motion: reduce){.jc-ants__over,.jc-ants__band{animation:none}}div.jc-select{display:flex;flex-direction:column;gap:var(--sp-2);height:auto;padding:var(--sp-2);border-radius:var(--r-sm);background:var(--sunken)}.jc-select__row{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.jc-select__row>.jc-note{flex:1 0 100%}.jc-select__btn{white-space:nowrap}.jc-select__btn{flex:1;min-width:0;padding:var(--sp-1) 0;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--raised);color:var(--ink-2);font-size:var(--text-xs);cursor:pointer}.jc-select__btn[data-active=true]{border-color:var(--accent);color:var(--accent)}.jc-select__btn:disabled{color:var(--faint);cursor:default}.jc-xform{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible}.jc-xform__box{fill:none;stroke:var(--ants-light);stroke-width:1;filter:drop-shadow(0 0 1px var(--ants-dark))}.jc-xform__stem{stroke:var(--ants-light);stroke-width:1;filter:drop-shadow(0 0 1px var(--ants-dark))}.jc-xform__grip{fill:var(--ants-light);stroke:var(--ants-dark);stroke-width:1}.jc-xform__grip[data-kind=rotate],.jc-xform__grip[data-kind=mesh]{fill:var(--accent)}.jc-xform__thread{fill:none;stroke:var(--ants-light);stroke-width:1;opacity:.55;filter:drop-shadow(0 0 1px var(--ants-dark))}.jc-adjust{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);overflow-y:auto}.jc-snapped{padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs)}.jc-color-panel__sample{padding:0 var(--sp-2);border:1px solid var(--rule);border-radius:var(--r-sm);background:transparent;color:var(--muted);font-size:var(--text-xs);cursor:pointer}.jc-color-panel__sample[data-active=true]{border-color:var(--accent);color:var(--accent)}.jc-timeline__frames li[data-drop=true]{box-shadow:inset 3px 0 0 var(--accent)}.jc-swatch[data-outside]{position:relative}.jc-swatch[data-outside]:after{content:"";position:absolute;right:0;bottom:0;border-style:solid;border-width:0 0 7px 7px;border-color:transparent transparent var(--surface) transparent}.jc-crop{position:relative;margin:var(--sp-2) auto;overflow:hidden;background:var(--sunken);border-radius:var(--r-sm);touch-action:none}.jc-crop__paper{position:absolute;background-color:var(--surface);background-size:100% 100%;outline:1px dashed var(--rule)}.jc-crop__frame{position:absolute;border:1.5px solid var(--accent);box-shadow:0 0 0 999px color-mix(in srgb,var(--sunken) 55%,transparent);cursor:move}.jc-crop__handle{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:1.5px solid var(--accent);border-radius:50%;background:var(--surface)}.jc-crop__handle[data-grab=n],.jc-crop__handle[data-grab=s]{cursor:ns-resize}.jc-crop__handle[data-grab=e],.jc-crop__handle[data-grab=w]{cursor:ew-resize}.jc-crop__handle[data-grab=ne],.jc-crop__handle[data-grab=sw]{cursor:nesw-resize}.jc-crop__handle[data-grab=nw],.jc-crop__handle[data-grab=se]{cursor:nwse-resize}.jc-canvas-sheet__turn{align-items:end}.jc-xform-numbers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-1);margin-top:var(--sp-2)}.jc-xform-numbers__field{display:grid;gap:2px;font-size:var(--text-xs);color:var(--muted)}.jc-xform-numbers__field .field{width:100%;min-width:0;padding:2px var(--sp-1);font-variant-numeric:tabular-nums}.jc-text-caret{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.jc-text-caret polygon{fill:var(--accent);fill-opacity:.3}.jc-text-editor{position:absolute;left:-9999px;top:0;width:2px;padding:0;border:0;margin:0;overflow:hidden;resize:none;white-space:pre;line-height:1;color:transparent;caret-color:transparent;background:transparent;outline:none;opacity:0;pointer-events:none}.jc-text-caret line{stroke:var(--accent);stroke-width:2;animation:jc-caret-blink 1.06s steps(1) infinite}@keyframes jc-caret-blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.jc-text-caret line{animation:none}}.jc-snapped--edit{border:0;cursor:pointer}.jc-snapped--edit:hover{background:var(--accent);color:var(--surface)}.jc-shape-bar{display:inline-flex;align-items:center;gap:var(--sp-2)}.jc-shape-edit{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.jc-shape-edit__node{fill:var(--surface);stroke:var(--accent);stroke-width:2}.jc-shape-edit__grab{fill:transparent;pointer-events:all;cursor:grab;touch-action:none}.jc-guide,.jc-clone{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.jc-clone__mark circle{fill:none;stroke:var(--ants-light);stroke-width:1.5}.jc-clone__mark line{stroke:var(--ants-light);stroke-width:1.5}.jc-clone__mark[data-arming=true] circle,.jc-clone__mark[data-arming=true] line{stroke:var(--accent)}.jc-clone__hint{fill:var(--ants-light);font-size:var(--text-xs)}.jc-adjust__hint{margin:0;font-size:var(--text-xs);color:var(--muted)}.jc-adjust__group{border:1px solid var(--rule);border-radius:var(--r-sm);padding:var(--sp-2);margin:0;display:flex;flex-direction:column;gap:var(--sp-1)}.jc-model-maps{border:1px solid var(--rule);border-radius:var(--r-sm);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.jc-model-maps__title{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.jc-model-maps__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.jc-adjust__group legend{font-size:var(--text-xs);color:var(--muted);padding:0 var(--sp-1)}.jc-adjust__stops{display:flex;gap:var(--sp-1)}.jc-adjust__stops input{flex:1;height:28px;border:1px solid var(--rule);border-radius:var(--r-sm);background:transparent;padding:2px}.jc-curve{width:100%;aspect-ratio:1;background:var(--sunken);border:1px solid var(--rule);border-radius:var(--r-sm);touch-action:none}.jc-curve__grid{stroke:var(--rule-strong);stroke-width:.8;stroke-dasharray:3 3}.jc-curve__line{fill:none;stroke:var(--ink);stroke-width:1.4}.jc-curve__grip{fill:var(--accent);stroke:var(--ground);stroke-width:1}.jc-text__area{width:100%;min-height:calc(var(--sp-3) * 4);resize:vertical;padding:var(--sp-1) var(--sp-2);border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-sm);line-height:1.4}.jc-text__area:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.jc-adjust select{padding:2px var(--sp-1);border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-sm)}.jc-reference{position:absolute;z-index:6;display:flex;flex-direction:column;min-width:180px;min-height:160px;background:color-mix(in srgb,var(--raised) 94%,transparent);border:1px solid var(--rule-strong);border-radius:var(--r-lg);backdrop-filter:blur(12px);box-shadow:0 10px 30px #00000073;overflow:hidden}.jc-reference__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2);border-bottom:1px solid var(--rule);cursor:grab;touch-action:none}.jc-reference__bar:active{cursor:grabbing}.jc-reference__tabs{display:flex;gap:2px;margin-right:auto}.jc-reference__tab{border:0;background:transparent;color:var(--muted);font:inherit;font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);cursor:pointer}.jc-reference__tab[data-on=true]{background:var(--accent-soft);color:var(--accent)}.jc-reference__body{position:relative;flex:1;min-height:0;background:var(--sunken);background-image:linear-gradient(45deg,var(--checker-a) 25%,transparent 25%),linear-gradient(-45deg,var(--checker-a) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker-a) 75%),linear-gradient(-45deg,transparent 75%,var(--checker-a) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;touch-action:none;cursor:grab}.jc-reference__body[data-empty=true]{cursor:default}.jc-reference__body[data-picking=true]{cursor:crosshair}.jc-reference__canvas{position:absolute;inset:0;width:100%;height:100%}.jc-reference__empty{position:absolute;inset:0;margin:0;display:grid;place-items:center;padding:var(--sp-3);text-align:center;font-size:var(--text-xs);color:var(--muted)}.jc-reference__hint{position:absolute;left:0;right:0;bottom:var(--sp-1);text-align:center;font-size:var(--text-xs);color:var(--ink-2);text-shadow:0 1px 3px rgb(0 0 0 / 70%);pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease)}.jc-reference__body:hover .jc-reference__hint{opacity:.75}.jc-reference__body[data-picking=true] .jc-reference__hint{opacity:0}.jc-reference__foot{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-top:1px solid var(--rule);font-size:var(--text-xs);color:var(--muted)}.jc-reference__foot .btn{padding:2px var(--sp-2);font-size:var(--text-xs)}.jc-reference__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-reference__zoom{font-variant-numeric:tabular-nums}.jc-reference__grip{position:absolute;right:0;bottom:0;width:18px;height:18px;border:0;padding:0;background:transparent;cursor:nwse-resize;touch-action:none}.jc-reference__grip:after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid var(--rule-strong);border-bottom:2px solid var(--rule-strong)}.jc-history{width:min(640px,100%)}.jc-history__bar{display:flex;align-items:center;justify-content:space-between}.jc-history__keep{display:flex;gap:var(--sp-2);align-items:center}.jc-history__keep .field{flex:1;min-width:0}.jc-history__error{color:var(--danger)}.jc-history__day{display:flex;flex-direction:column;gap:var(--sp-2)}.jc-history__date{font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}.jc-history__list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-1)}.jc-history__thinned{font-size:var(--text-xs);color:var(--faint);padding-left:calc(64px + var(--sp-3))}.jc-version{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--sunken)}.jc-version[data-head=true]{border-color:var(--accent)}.jc-version__pic{flex:none;width:64px;height:48px;border-radius:var(--r-sm);background:var(--raised);overflow:hidden;display:grid;place-items:center}.jc-version__pic img{max-width:100%;max-height:100%;object-fit:contain}.jc-version__what{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.jc-version__time{font-size:var(--text-sm);color:var(--ink);font-variant-numeric:tabular-nums}.jc-version__kind{font-size:var(--text-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-version__kind[data-kind=named]{color:var(--accent);font-weight:600}.jc-version__meta{font-size:var(--text-xs);color:var(--faint)}.jc-version__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-1)}@media (max-width: 520px){.jc-version{flex-wrap:wrap}.jc-version__actions{width:100%}}.jc-timeline{position:absolute;left:50%;bottom:var(--sp-4);transform:translate(-50%);width:min(760px,calc(100% - 2 * var(--sp-4)));display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--raised) 90%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);z-index:5}.jc-timeline__bar{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--ink-2)}.jc-timeline__count{font-variant-numeric:tabular-nums}.jc-timeline__hold{display:inline-flex;align-items:center;gap:var(--sp-1);font-variant-numeric:tabular-nums}.jc-timeline__spacer{flex:1}.jc-timeline__settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-2) var(--sp-4);padding:var(--sp-2) 0;border-top:1px solid var(--rule);font-size:var(--text-sm)}.jc-timeline__row{display:flex;align-items:center;gap:var(--sp-2)}.jc-timeline__frames{display:flex;gap:var(--sp-1);overflow-x:auto;list-style:none;margin:0;padding:0 0 var(--sp-1)}.jc-frame{font:inherit;display:flex;flex-direction:column;align-items:flex-start;min-width:64px;max-width:96px;padding:var(--sp-1) var(--sp-2);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface);color:var(--ink-2);cursor:pointer}.jc-frame[data-active=true]{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}.jc-frame__number{font-size:var(--text-md);font-variant-numeric:tabular-nums}.jc-frame__name{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.jc-frame__hold{font-size:var(--text-xs);color:var(--accent)}.jc-check{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-2)}.jc-cursors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.jc-cursors__arrow{stroke:#00000073;stroke-width:1;stroke-linejoin:round}.jc-cursors g[data-down=true] .jc-cursors__arrow{stroke:#ffffffe6;stroke-width:1.5}.jc-cursors__name{font-size:var(--text-xs);paint-order:stroke;stroke:#00000080;stroke-width:3;stroke-linejoin:round}.jc-roster{display:flex;align-items:center;gap:2px}.jc-roster__dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:var(--text-xs);font-weight:600;border:1px solid var(--surface);text-shadow:0 1px 1px rgb(0 0 0 / .4)}.jc-roster__dot[data-looking=true]{opacity:.55}.jc-layer__peer{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:2px}.jc-layer__held{margin-right:4px;padding:0 var(--sp-1);border:1px solid;border-radius:var(--r-sm);color:var(--ink-2);font-size:var(--text-xs);font-weight:500;max-width:7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-layer[data-held-by] .jc-layer__name{color:var(--muted)}.jc-held{padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--ink);font-size:var(--text-xs);max-width:36em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jc-comments{position:absolute;top:var(--sp-4);right:calc(var(--sp-4) + 64px);bottom:var(--sp-4);width:300px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden;z-index:4}.jc-comments__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);font-size:var(--text-sm)}.jc-comments__count{margin-left:auto;color:var(--muted);font-size:var(--text-xs)}.jc-comments__tools{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule)}.jc-comments__pending,.jc-comments__error,.jc-comments__empty{margin:0;padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);color:var(--muted)}.jc-comments__error{color:var(--danger)}.jc-comments__list{flex:1 1 auto;min-height:0;overflow-y:auto}.jc-comments__write{display:flex;gap:var(--sp-2);align-items:flex-end;padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--rule)}.jc-comments__box{flex:1 1 auto;min-width:0;resize:vertical;font:inherit;font-size:var(--text-sm);color:var(--ink);background:var(--sunken);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--sp-2)}.jc-thread{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);cursor:pointer}.jc-thread[data-selected=true]{background:color-mix(in srgb,var(--accent) 14%,transparent)}.jc-thread[data-resolved=true]{opacity:.55}.jc-thread__head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs)}.jc-thread__pin{display:grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:var(--text-xs)}.jc-thread__who{font-weight:600}.jc-thread__when{margin-left:auto;color:var(--muted)}.jc-thread__body{margin:var(--sp-1) 0 0;font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere}.jc-thread__body[data-withdrawn=true]{color:var(--muted);font-style:italic}.jc-thread__reply{margin:var(--sp-2) 0 0 var(--sp-3);padding-left:var(--sp-2);border-left:2px solid var(--rule);font-size:var(--text-xs)}.jc-thread__acts{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.jc-thread__act{background:none;border:none;padding:0;color:var(--muted);font-size:var(--text-xs);cursor:pointer;text-decoration:underline}.jc-thread__act:hover{color:var(--ink)}.jc-pins{position:absolute;inset:0;pointer-events:none;z-index:3}.jc-pins__pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;min-width:22px;height:22px;padding:0 5px;border-radius:11px 11px 11px 2px;border:1px solid color-mix(in srgb,#000 35%,transparent);background:var(--accent);color:var(--accent-ink);font-size:var(--text-xs);font-weight:600;cursor:pointer;box-shadow:0 1px 4px #00000059}.jc-pins__pin[data-selected=true]{outline:2px solid var(--ink)}.jc-pins__pin[data-resolved=true]{opacity:.5}.jc-looking{padding:2px var(--sp-2);border:1px solid var(--rule);border-radius:999px;color:var(--muted);font-size:var(--text-xs)}.jc-tween{position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);max-height:46%;display:flex;flex-direction:column;background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--rule);border-radius:var(--r-lg);backdrop-filter:blur(12px);overflow:hidden;z-index:4}.jc-tween__bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule)}.jc-tween__clock{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--muted);min-width:9ch}.jc-tween__ease{width:auto;font-size:var(--text-xs)}.jc-tween__settings{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);flex-wrap:wrap}.jc-tween__rows{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto}.jc-tween__row{display:flex;align-items:center;height:26px;border-bottom:1px solid color-mix(in srgb,var(--rule) 50%,transparent)}.jc-tween__row[data-active=true]{background:color-mix(in srgb,var(--accent) 10%,transparent)}.jc-tween__name{flex:0 0 140px;text-align:left;background:none;border:none;border-right:1px solid var(--rule);color:var(--ink);font-size:var(--text-xs);height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.jc-tween__track{position:relative;flex:1 1 auto;height:100%;cursor:crosshair}.jc-tween__key{position:absolute;top:50%;width:11px;height:11px;margin:-6px 0 0 -6px;padding:0;border:1px solid var(--accent-ink);border-radius:2px;background:var(--accent);transform:rotate(45deg);cursor:pointer}.jc-tween__key[data-off=true]{background:var(--raised)}.jc-tween__key[data-hold=true]{transform:none;border-radius:0}.jc-tween__head{position:absolute;top:0;bottom:0;width:1px;background:var(--ink);pointer-events:none}.jc-nodes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.jc-nodes__tethers line{stroke:var(--accent);stroke-opacity:.8;stroke-width:1}.jc-nodes__anchor{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.jc-nodes__anchor[data-on=true]{fill:var(--accent)}.jc-nodes__handle{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.jc-nodes__handle[data-on=true]{fill:var(--accent)}.jc-nodes__preview{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 4}.jc-version__pic{position:relative}.jc-version__look{position:absolute;inset:0;border:0;background:transparent;cursor:zoom-in}.jc-version__look:focus-visible{outline:2px solid var(--accent)}.jc-version-look{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);max-width:calc(100% - 2 * var(--sp-3));padding:var(--sp-2) var(--sp-3);border:2px solid var(--accent);border-radius:var(--r-md);background:var(--raised);box-shadow:0 2px 10px #00000040}.jc-version-look__what{display:flex;flex-direction:column;margin-right:var(--sp-2)}.jc-version-look__meta{color:var(--muted);font-size:var(--text-xs)}.jc-version-look__error{color:var(--danger);font-size:var(--text-xs)}
