*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100dvh}body{color:#222;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#f2f1ee;font:13px/1.4 system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit}.app{flex-direction:column;height:100%;display:flex;position:relative}.loading{color:#888;justify-content:center;align-items:center}.topbar{background:#fff;border-bottom:1px solid #ddd;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;min-height:34px;padding:6px 10px;display:flex}.meta{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;display:flex}.meta.right{flex-shrink:1;align-items:center;min-width:0}.dim{color:#888}.proj-legal{color:#aaa;align-items:center;gap:10px;padding:2px 6px 0;font-size:10px;display:flex}.proj-legal a{color:#aaa;text-decoration:none}.proj-legal a:hover{text-decoration:underline}.hint{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.count{font-variant-numeric:tabular-nums}.save-status{color:#888;font-size:11px}.save-status.danger{color:#c62828}.stage{touch-action:none;background:#e9e8e4;flex:1;min-height:0;position:relative;overflow:hidden}.nav-chev{color:#999;cursor:pointer;z-index:2;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.nav-chev:hover:not(:disabled){color:#333;background:#0000000d}.nav-chev:disabled{opacity:.15;cursor:default}.nav-chev.left{left:calc(8px + env(safe-area-inset-left))}.nav-chev.right{right:calc(8px + env(safe-area-inset-right))}.nb{opacity:.5;pointer-events:none;z-index:1;transition:opacity .22s;position:absolute}.nb.left{transform:translate(-100%,-50%)}.nb.right{transform:translateY(-50%)}.nb.hide{opacity:0}.nb-sheet{background:#fff;border:1px solid #ccc;border-radius:3px;line-height:0;display:inline-block;box-shadow:0 1px 5px #0000001f}.nb-label{text-align:center;color:#8a8a88;white-space:nowrap;text-overflow:ellipsis;margin-top:5px;font-size:10px;overflow:hidden}.paper{transform-origin:0 0;will-change:transform;touch-action:none;cursor:crosshair;background:#fff;border:1px solid #ccc;display:block;position:absolute;top:0;left:0;box-shadow:0 1px 6px #0000002e}.screens{background:#f6f5f3}.app-title{font-size:13px;font-weight:600}.hs-logo{flex-shrink:0;width:auto;height:24px;display:block}.hs-logo.mini{height:16px}.hs-logo-btn{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;margin-right:2px;padding:2px 3px;line-height:0;display:flex}.hs-logo-btn:hover{background:#ff005514}.crumb{padding:3px 7px}.screen-scroll{min-height:0;padding:16px 14px calc(16px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;max-width:1080px;margin:0 auto;display:grid}.proj-card{cursor:pointer;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #e2e1dd;border-radius:12px;align-items:center;gap:12px;padding:12px;transition:box-shadow .15s,border-color .15s;display:flex;position:relative;box-shadow:0 1px 4px #0000000d}.proj-card:hover{border-color:#d5d4cf;box-shadow:0 3px 12px #00000017}.pc-cover .thumb,.cover-blank{border-radius:6px}.cover-blank{background:#fff;border:1px solid #ddd;width:72px;height:72px;display:block}.pc-body{flex:1;min-width:0}.pc-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pc-prog{font-variant-numeric:tabular-nums;font-size:11px}.pc-menu-wrap{position:absolute;top:6px;right:6px}.proj-card.new{color:#888;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:96px}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:12px;max-width:1080px;margin:0 auto;display:grid}.asset-card{background:#fff;border:1px solid #e2e1dd;border-radius:12px;padding:12px;position:relative;box-shadow:0 1px 4px #0000000d}.ac-head{justify-content:space-between;align-items:center;gap:6px;margin-bottom:9px;display:flex}.ac-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.ac-tiers{flex-wrap:wrap;gap:8px;display:flex}.tc{flex-direction:column;align-items:center;gap:3px;display:flex}.tc-cell{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:5px;justify-content:center;align-items:center;width:58px;height:58px;padding:0;line-height:0;transition:border-color .14s,box-shadow .14s;display:flex;position:relative;box-shadow:0 1px 3px #00000014}.tc-cell:hover{border-color:#f05;box-shadow:0 2px 8px #ff005526}.tc-tick{color:#2e7d32;background:#fff;border:1px solid #ddd;border-radius:50%;padding:2px;line-height:0;display:flex;position:absolute;top:-5px;right:-5px}.tc-label{color:#888;font-size:10px}.asset-card.new{color:#888;min-height:120px;font:inherit;cursor:pointer;background:0 0;border:1px dashed #c9c8c4;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:color .15s,border-color .15s;display:flex}.asset-card.new:hover{color:#f05;border-color:#f05}.proj-item:disabled{opacity:.35;cursor:default;background:0 0}.proj-item.danger{color:#c62828}.proj-item.lvl{justify-content:space-between;padding:1px 3px}.lvl-name{font:inherit;color:#333;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:3px;padding:2px 4px;font-size:12px}.lvl-name:hover{background:#f0efec}.lvl-ops{gap:1px;display:inline-flex}.dlg-back{z-index:20;background:#1412184d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg{background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:min(320px,100vw - 32px);padding:16px;display:flex;box-shadow:0 12px 40px #0003}.dlg-title{font-size:14px;font-weight:600}.dlg-row{color:#555;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.dlg-row input{font:inherit;border:1px solid #ccc;border-radius:7px;width:160px;min-width:0;padding:6px 8px}.dlg-row input:focus{border-color:#f05;outline:none}.dlg-row input[type=number]{width:64px}.seg{gap:3px;display:inline-flex}.seg-b{font:inherit;cursor:pointer;color:#555;background:#fff;border:1px solid #ccc;border-radius:7px;padding:5px 12px;font-size:12px;transition:all .14s}.seg-b.on{color:#f05;background:#ff005517;border-color:#f05}.dlg-actions{justify-content:flex-end;gap:6px;display:flex}@media (pointer:coarse){.proj-item,.lvl-name{padding:7px 8px}.tc-cell{width:62px;height:62px}}.dock{bottom:calc(22px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px)saturate(1.4);z-index:4;background:#fcfbfad1;border:1px solid #00000014;border-radius:999px;align-items:center;gap:3px;max-width:calc(100vw - 16px);padding:5px 8px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000024,0 1px 3px #00000014}.dock .btn{color:#4a4a48;background:0 0;border:none;border-radius:11px;justify-content:center;width:38px;height:38px;padding:0;transition:background-color .14s,color .14s,transform .12s}.dock .btn:hover:not(:disabled){color:#111;background:#0000000f}.dock .btn:active:not(:disabled){transform:scale(.94)}.dock .btn.on{color:#f05;background:#ff005517}.dock .btn:disabled{opacity:.3}.dock .sizes{gap:0}.dock .btn.size{width:30px}.dock .divider{background:#0000001a;width:1px;height:22px;margin:0 5px}.dock .zoom .zbtn{color:#4a4a48;background:0 0;border:none;border-radius:11px;width:30px;height:38px;padding:0}.dock .zoom .zval{min-width:40px;font-size:12px}.dock .done-mark{color:#2e7d32;margin-left:4px}.dock-backdrop{z-index:6;position:fixed;inset:0}.dock-pop{-webkit-backdrop-filter:blur(14px)saturate(1.4);z-index:7;background:#fcfbfae6;border:1px solid #00000014;border-radius:999px;align-items:center;gap:3px;padding:5px 8px;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000024,0 1px 3px #00000014}@media (width<=640px){.dock{gap:1px;padding:4px 6px}.dock .btn{border-radius:10px;width:34px;height:36px}.dock .btn.size{width:26px}.dock .divider{margin:0 3px}}.btn{cursor:pointer;color:#333;background:#fff;border:1px solid #ccc;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}@media (pointer:coarse){.btn{padding:9px 12px}}.zoom{align-items:center;gap:2px;display:inline-flex}.zoom .zbtn{color:#666;background:0 0;border:none;padding:3px 5px}.zoom .zval{cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;color:#555;text-align:center;background:0 0;border:none;min-width:38px;padding:2px 0;font-size:12px}.zoom .zval:hover{color:#111}@media (pointer:coarse){.zoom .zbtn{padding:8px 9px}}.btn:hover:not(:disabled){background:#f0efec}.btn.on,.btn.primary{color:#fff;background:#2b2b2b;border-color:#2b2b2b}.btn.primary:hover:not(:disabled){background:#444}.btn:disabled{opacity:.35;cursor:default}.sizes{gap:2px;display:inline-flex}.btn.size{padding:4px 6px}.dot{background:currentColor;border-radius:50%;display:block}.divider{background:#ddd;width:1px;height:18px;margin:0 4px}.done-mark{color:#2e7d32}.hud{top:calc(16px + env(safe-area-inset-top));z-index:4;-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);background:#fcfbfad1;border:1px solid #00000014;border-radius:999px;align-items:center;gap:2px;padding:5px 10px;display:flex;position:absolute;box-shadow:0 8px 28px #00000024,0 1px 3px #00000014}.hud-main{max-width:calc(100vw - 24px);left:50%;transform:translate(-50%)}.hud-side{right:calc(10px + env(safe-area-inset-right))}.hud .divider{background:#0000001a;flex-shrink:0;width:1px;height:16px;margin:0 6px}.crumb-name{cursor:pointer;font:inherit;color:#333;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:999px;max-width:16ch;padding:2px 4px;font-size:12px;font-weight:600;overflow:hidden}.crumb-name:hover{color:#f05}.hud .btn{background:0 0;border:0;padding:4px 6px}.hud .btn:hover:not(:disabled){background:#0000000f}.hud-info{color:#999;cursor:help;align-items:center;padding:0 2px;display:flex}.hud .edit-name{padding:1px 3px}@media (width<=640px){.hud{top:calc(10px + env(safe-area-inset-top));padding:4px 8px}.hud-main{max-width:calc(100vw - 148px)}.crumb-name{max-width:9ch}.hud .edit-name{text-overflow:ellipsis;width:auto;max-width:9ch;overflow:hidden}.hud .divider{margin:0 3px}.hud .save-status{white-space:nowrap;max-width:8ch;overflow:hidden}}.checklist{top:calc(66px + env(safe-area-inset-top));right:8px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:5;background:#fff;border:1px solid #ddd;border-radius:6px;width:min(220px,100vw - 16px);padding:6px;position:absolute;overflow-y:auto;box-shadow:0 2px 8px #0000001f}.fam{margin-bottom:6px}.fam-name{color:#555;padding:2px 4px;font-size:12px;font-weight:600}.tier{text-align:left;cursor:pointer;color:#333;background:0 0;border:0;border-radius:3px;align-items:center;gap:5px;width:100%;padding:3px 6px;font-size:12px;display:flex}.tier:hover{background:#f0efec}.tier.active{background:#e6e4ff}.tick{color:#2e7d32;flex-shrink:0}.tick.empty{border:1px solid #ccc;border-radius:2px;width:12px;height:12px;display:inline-block}.notice{bottom:calc(86px + env(safe-area-inset-bottom));color:#fff;z-index:10;pointer-events:none;background:#333;border-radius:5px;padding:6px 14px;position:fixed;left:50%;transform:translate(-50%)}.proj-wrap{position:relative}.proj-btn{max-width:140px}.proj-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-backdrop{z-index:6;position:fixed;inset:0}.proj-menu{z-index:7;background:#fff;border:1px solid #ddd;border-radius:6px;flex-direction:column;gap:2px;width:200px;max-height:320px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001f}.proj-menu .divider{width:100%;height:1px;margin:4px 0}.proj-item{text-align:left;cursor:pointer;color:#333;background:0 0;border:0;border-radius:3px;align-items:center;gap:5px;padding:3px 6px;font-size:12px;display:flex}.proj-item:hover{background:#f0efec}.proj-item.active{background:#e6e4ff}.proj-actions{flex-wrap:wrap;gap:4px;display:flex}.btn.danger{color:#c62828;border-color:#e0b4b4}.edit-name{color:#08060d;background:0 0;border:1px solid #0000;border-radius:3px;min-width:3ch;max-width:24ch;padding:1px 4px;font-family:inherit;font-size:13px;font-weight:600}.edit-name.level{color:#333;font-weight:400}.edit-name:hover{background:#fafaf8;border-color:#ddd}.edit-name:focus{background:#fff;border-color:#b9b4e8;outline:none}.mini{color:#777;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;gap:2px;padding:2px 4px;font-size:11px;display:inline-flex}.mini:hover:not(:disabled){color:#333;background:#f0efec}.mini:disabled{opacity:.25;cursor:default}.mini.danger{color:#c62828}.br-head{align-items:center;gap:4px;margin-bottom:6px;display:flex}.add-asset{flex:1;justify-content:center}.fam-item{margin-bottom:4px}.asset-row,.lvl-row{border-radius:3px;align-items:center;gap:3px;display:flex}.asset-row:hover,.lvl-row:hover{background:#f7f6f3}.fam-item.active>.asset-row{background:#e6e4ff}.asset-thumb{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:3px;flex-shrink:0;padding:1px;line-height:0}.lvl-row .asset-thumb{border-color:#e7e7e7}.thumb{display:block}.asset-name{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;text-align:left;color:#333;background:0 0;border:0;flex:1;min-width:0;padding:2px 0;font-size:12px;overflow:hidden}.inline{min-width:0;font:inherit;background:#fbfaff;border:1px solid #c9c6f2;border-radius:3px;flex:1;padding:1px 4px;font-size:12px}.inline:focus{background:#fff;border-color:#b9b4e8;outline:none}.levels{border-left:2px solid #ececf6;margin:2px 0 6px 8px;padding-left:6px}.lvl-row.on{background:#f2f1fb}.lvl-foot{align-items:center;gap:4px;margin-top:2px;display:flex}.inline.cat{color:#666;background:0 0;border-color:#0000;flex:0 90px;font-size:11px}.inline.cat:hover,.inline.cat:focus{background:#fff;border-color:#ddd}.pix-paper{image-rendering:pixelated;background-color:#fff;background-image:linear-gradient(45deg,#efeeec 25%,#0000 25% 75%,#efeeec 75%),linear-gradient(45deg,#efeeec 25%,#0000 25% 75%,#efeeec 75%);background-position:0 0,8px 8px;background-size:16px 16px}.pix-thumb{image-rendering:pixelated}.dock.pix-dock{flex-wrap:wrap;justify-content:center;row-gap:2px;max-width:min(96vw,760px)}.dock .btn.sw{color:#151515;border:1px solid #0000002e;border-radius:7px;width:26px;height:26px}.dock .btn.sw.on{border-color:#f05;box-shadow:0 0 0 2px #ff005538}.dock .btn.size{width:30px;height:30px}.palette{align-items:center;gap:2px;display:inline-flex}.sw.pick{background:conic-gradient(from 90deg,#f05,#ffd93b,#39a84f,#2f6fdb,#9b5de5,#f05);position:relative;overflow:hidden}.sw.pick input[type=color]{opacity:0;cursor:pointer;border:0;width:calc(100% + 12px);height:calc(100% + 12px);padding:0;position:absolute;inset:-6px}.sq{background:currentColor;border-radius:2px;display:block}.cur-colour{border:1px solid #0000002e;border-radius:5px;width:20px;height:20px;display:inline-block}.dlg-row.col{flex-direction:column;align-items:stretch;gap:6px}.mode-cards{gap:8px;display:flex}.mode-card{font:inherit;text-align:left;cursor:pointer;background:#fcfbfa;border:1px solid #ddd;border-radius:10px;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:10px;transition:border-color .14s,background-color .14s;display:flex}.mode-card strong{color:#333;font-size:12px}.mode-card small{color:#8a8a88;font-size:10px;line-height:1.3}.mode-card.on{background:#ff00550f;border-color:#f05}.mode-card.on strong{color:#f05}
