:root{--ink:#111317;--ink-2:#4b5158;--ink-3:#878e97;--line:#e4e6e9;--line-2:#f0f1f3;--surface:#fff;--field:#f5f6f7;--shell:#eceef0;--sel:#2563eb;--sel-soft:#dbeafe;--danger:#d63c30;--bar-h:48px;--radius:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--shadow:0 1px 2px #1113170f, 0 8px 24px #1113171a}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--shell);-webkit-font-smoothing:antialiased;margin:0;font-size:13px}button{font:inherit;color:inherit;cursor:pointer}.app{flex-direction:column;height:100%;display:flex}.topbar{height:var(--bar-h);background:var(--surface);border-bottom:1px solid var(--line);z-index:40;flex:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 12px;display:grid;position:relative}.topbar-group{align-items:center;gap:4px;display:flex}@media (max-width:700px){.topbar{grid-template-columns:auto 1fr;gap:8px;padding:0 8px}.topbar-title,.topbar .btn .label,.topbar-group>span[style],.topbar .brand-btn{display:none}.topbar .btn{gap:4px;padding:0 7px}.topbar .segmented button{padding:0 8px}.topbar-group{gap:2px}}.topbar-group.right{justify-content:flex-end}.topbar-title{text-align:center;letter-spacing:.01em;min-width:0;font-weight:500}.topbar-title input{font:inherit;text-align:center;width:100%;max-width:320px;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 8px;font-weight:500}.topbar-title input:hover{background:var(--field)}.topbar-title input:focus{border-color:var(--line);background:var(--surface);outline:none}.btn{height:30px;color:var(--ink);white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.btn:hover{background:var(--field)}.btn:disabled{color:var(--ink-3);cursor:default;background:0 0}.btn.filled{background:var(--ink);color:#fff;padding:0 14px;font-weight:500}.btn.filled:hover{background:#000}.btn.danger{color:var(--danger)}.btn.danger:hover{background:#fdecea}.btn.icon{justify-content:center;width:30px;padding:0}.btn.small{height:26px;font-size:12px}.uppercase{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.segmented{background:var(--field);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.segmented button{height:26px;color:var(--ink-2);background:0 0;border:none;border-radius:5px;padding:0 12px;position:relative}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:500;box-shadow:0 1px 2px #1113171f}.dot{background:var(--sel);border-radius:999px;width:6px;height:6px;position:absolute;top:3px;right:4px}.workspace{flex:1;min-height:0;display:flex}.stage{flex-direction:column;flex:1;align-items:center;min-width:0;padding:0;display:flex;position:relative;overflow:hidden}.stage-scroll{justify-content:center;width:100%;height:100%;display:flex}.frame-wrap{flex-direction:column;height:100%;display:flex;position:relative}.frame-label{writing-mode:vertical-rl;height:calc(100% - 16px);color:var(--ink-3);letter-spacing:.04em;-webkit-user-select:none;user-select:none;white-space:nowrap;justify-content:flex-end;align-items:center;font-size:11px;display:flex;position:absolute;top:16px;left:-30px;transform:rotate(180deg)}.frame{box-shadow:0 0 0 1px var(--line), 0 10px 30px #11131714;background:#fff;border:none;height:100%;display:block}.frame-grip{cursor:ew-resize;touch-action:none;z-index:5;justify-content:center;align-items:center;width:28px;height:100%;display:flex;position:absolute;top:0}.frame-grip.right{right:-34px}.frame-grip.left{left:-34px}.frame-grip:after{content:"";background:#c3c8cf;border-radius:999px;width:4px;height:44px;transition:background .12s,height .12s}.frame-grip:hover:after{background:var(--sel);height:60px}.frame-grip.dragging:after{background:var(--sel);height:72px}.layers{z-index:30;background:var(--surface);border-radius:var(--radius);width:280px;max-height:60vh;box-shadow:var(--shadow);padding:6px;position:absolute;overflow:auto}.layers-row{cursor:default;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:8px;height:30px;padding:0 6px;display:flex}.layers-row:hover{background:var(--field)}.layers-row.selected{background:var(--sel-soft)}.layers-row.dragging{opacity:.4}.layers-row.drop-before{box-shadow:inset 0 2px 0 var(--sel)}.layers-row.drop-after{box-shadow:inset 0 -2px 0 var(--sel)}.layers-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layers-cat{color:var(--ink-3);font-size:11px}.layers-row.child{padding-left:26px}.layers-eye{opacity:0;color:var(--ink-3)}.layers-row:hover .layers-eye,.layers-eye.on{opacity:1}.layers-caret{width:14px;color:var(--ink-3);text-align:center}.layers-thumb{object-fit:cover;border-radius:2px;width:20px;height:14px}.scrim{z-index:100;background:#11131752;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;width:100%;max-width:1180px;height:100%;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:12px 16px;display:flex}.modal-title{font-weight:600}.modal-sub{color:var(--ink-3)}.modal-body{flex:1;min-height:0;display:flex}.rail{border-right:1px solid var(--line);flex:none;width:176px;padding:8px;overflow:auto}.rail button{text-align:left;width:100%;color:var(--ink-2);background:0 0;border:none;border-radius:6px;padding:7px 10px;display:block}.rail button:hover{background:var(--field)}.rail button[aria-pressed=true]{background:var(--field);color:var(--ink);font-weight:500}.gallery{flex:1;padding:16px;overflow:auto}.masonry{column-count:3;column-gap:16px}.masonry>*{break-inside:avoid;margin-bottom:16px}@media (max-width:900px){.masonry{column-count:2}}.specimen{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:8px;width:100%;padding:0;display:block;overflow:hidden}.specimen:hover{border-color:var(--sel);box-shadow:0 0 0 1px var(--sel)}.specimen-frame{background:#fff;position:relative;overflow:hidden}.specimen-frame iframe{border:0;display:block}.specimen-foot{border-top:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.specimen-name{font-weight:500}.specimen-note{color:var(--ink-3);font-size:11px}.element-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.sheetish{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;width:460px;max-width:100%;padding:18px}.sheetish h2{margin:0 0 6px;font-size:15px}.sheetish p{color:var(--ink-2);margin:0 0 14px;line-height:1.5}.row{justify-content:flex-end;align-items:center;gap:8px;display:flex}.report{border:1px solid var(--line);border-radius:8px;max-height:220px;margin-bottom:14px;padding:8px;overflow:auto}.report div{color:var(--ink-2);justify-content:space-between;gap:8px;padding:3px 4px;display:flex}.swatch-chip{border:1px solid #0000001f;border-radius:4px;width:14px;height:14px}.gate{max-width:520px;margin:0 auto;padding:24px}.gate h1{margin:24px 0 8px;font-size:18px}.gate p{color:var(--ink-2);line-height:1.55}.gate .preview{box-shadow:var(--shadow);background:#fff;border-radius:10px;margin-top:20px;overflow:hidden}.gate .preview iframe{border:0;width:100%;height:70vh;display:block}.brand-btn-strip{border:1px solid #0000001f;border-radius:4px;display:flex;overflow:hidden}.brand-btn-strip span{width:7px;height:14px}.brand-h{color:var(--ink-2);margin:0 0 8px;font-size:12px;font-weight:600}.brand-colours{flex-wrap:wrap;gap:6px;min-height:26px;margin-bottom:12px;display:flex}.brand-empty{color:var(--ink-3);align-self:center;font-size:13px}.brand-chip{border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 6px;display:inline-flex}.brand-chip code{color:var(--ink-2);font-size:11px}.brand-chip-swatch{border:1px solid #0000001f;border-radius:4px;width:14px;height:14px}.brand-chip-x{color:var(--ink-3);opacity:0;background:0 0;border:none;width:18px;padding:0 2px}.brand-chip:hover .brand-chip-x,.brand-chip-x:focus-visible{opacity:1}.brand-chip-x:hover{color:var(--danger)}.brand-chip-x svg{width:13px;height:13px}.brand-add{align-items:center;gap:6px;margin-bottom:14px;display:flex}.brand-add input[type=color]{border:1px solid var(--line);background:0 0;border-radius:7px;width:32px;height:30px;padding:0}.brand-hex{border:1px solid var(--line);border-radius:7px;flex:1;height:30px;padding:0 8px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.brand-hex:focus{border-color:var(--ink-3);outline:none}.brand-gap{border:1px solid var(--line);color:var(--ink-2);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;font-size:13px;line-height:1.45;display:flex}.brand-gap strong{color:var(--ink);font-weight:600}.brand-gap .btn{flex:none}.brand-roles{gap:6px;margin-bottom:12px;display:flex}.brand-role-swatch{border:1px solid #0000001f;border-radius:7px;width:34px;height:30px;display:block}.brand-role.ours .brand-role-swatch{border:1px dashed var(--ink-3)}.brand-ours{color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.brand-pairings{gap:8px;margin:0 0 14px;display:grid}.brand-pairing{text-align:left;cursor:pointer;background:var(--sheet,#fff);color:inherit;border:1px solid var(--line-soft,#e6e7ea);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;display:flex}.brand-pairing:hover{border-color:var(--line-strong,#c9ccd2)}.brand-pairing.on{border-color:var(--sel);box-shadow:inset 0 0 0 1px var(--sel)}.brand-pairing>span:last-child{opacity:.62}.brand-choices{grid-template-columns:72px 1fr;align-items:center;gap:8px 12px;margin:0 0 14px;display:grid}.brand-choice-label{opacity:.6;font-size:12px}.brand-choice{flex-wrap:wrap;gap:6px;display:flex}.brand-choice button{cursor:pointer;background:var(--sheet,#fff);color:inherit;border:1px solid var(--line-soft,#e6e7ea);border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.brand-choice button:hover{border-color:var(--line-strong,#c9ccd2)}.brand-choice button.on{border-color:var(--sel);box-shadow:inset 0 0 0 1px var(--sel)}.brand-corner{background:var(--ink-3,#9aa0a6);border:1px solid var(--line-strong,#c9ccd2);flex:none;width:15px;height:15px}.brand-kits{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px;display:grid}.brand-kit{cursor:pointer;text-align:left;background:var(--sheet,#fff);color:inherit;border:1px solid var(--line-soft,#e6e7ea);border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;display:flex}.brand-kit:hover{border-color:var(--line-strong,#c9ccd2)}.brand-kit-face{padding:2px 6px;font-size:20px;line-height:1.1}.brand-kit-strips{gap:3px;display:flex}.brand-kit-strips i{border:1px solid #0000000f;border-radius:3px;width:12px;height:12px}.brand-kit-btn{padding:4px 10px;font-size:11px}.gallery-group{letter-spacing:.08em;text-transform:uppercase;opacity:.55;margin:4px 0 10px;padding-top:4px;font-size:12px}.gallery>div+div .gallery-group{border-top:1px solid var(--line-soft,#e6e7ea);margin-top:22px;padding-top:18px}
