:root{--S:min(62vw, 62vh);--ink:#7d6757}html,body{background:#f7f5f0;height:100%;margin:0;overflow:hidden}canvas{display:block}canvas.scene,canvas.loader{touch-action:none;width:100vw;height:100vh;position:fixed;inset:0}canvas.loader{pointer-events:none}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}.modes{left:50%;bottom:max(8px, env(safe-area-inset-bottom));color:var(--ink);gap:22px;font:700 17px/1 cursive;display:flex;position:fixed;transform:translate(-50%)}.modes button{opacity:.5;padding:6px 4px;transition:opacity .2s}.modes button:hover,.modes button[aria-pressed=true]{opacity:1}.swatches{right:calc(50vw + var(--S) / 2 + 22px);bottom:calc(50vh - var(--S) / 2);max-height:var(--S);flex-flow:column-reverse wrap-reverse;gap:8px;display:flex;position:fixed}.swatch{opacity:.5;transition:opacity .2s,scale .2s}.swatch:hover{opacity:.85}.swatch[aria-pressed=true]{opacity:1}.swatch canvas{width:44px;height:44px}@media (aspect-ratio<=1){.swatches{bottom:auto;left:50%;right:auto;top:calc(50vh + var(--S) / 2 + 14px);max-height:none;width:var(--S);flex-flow:wrap;justify-content:center;transform:translate(-50%)}.swatch canvas{width:40px;height:40px}}.add{color:#fff3d6;flex-direction:column;align-items:center;gap:6px;font:700 14px/1 cursive;transition:scale .2s;display:flex}.add:hover,body.dragover .add{scale:1.12}.pick{flex-direction:column;align-items:center;gap:22px;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-38%)}.presets{width:calc(var(--S) * .8);color:#fff3d6;flex-wrap:wrap;justify-content:center;gap:8px 16px;font:700 16px/1 cursive;display:flex}.presets button{opacity:.8;padding:6px 4px;transition:opacity .2s,scale .2s}.presets button:hover{opacity:1;scale:1.1}.add.small{left:calc(50vw + var(--S) / 2 - 50px);top:calc(50vh + var(--S) / 2 - 50px);display:none;position:fixed}body[data-mode=model]:not(.has-model) .pick,body[data-mode=model].has-model .add.small{display:flex}.fail{color:var(--ink);text-align:center;place-items:center;padding:16px;font:700 19px/1.4 cursive;display:grid;position:fixed;inset:0}
