:root{--ink: #0f172a;--paper: #fdfbf7;--accent: #ffb703;--line: 2px;--shadow: 4px 4px 0 var(--ink), 8px 8px 0 var(--ink);--font: "Comic Sans MS", "Patrick Hand", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:radial-gradient(circle at 20% 20%,#fff7e6 0,#f7f2e9 45%,#f0eadc);color:var(--ink);overflow:hidden}#app{width:100vw;height:100vh;position:relative}canvas{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}#hud{position:absolute;inset:0;pointer-events:none;z-index:2}.panel{position:absolute;top:16px;left:16px;right:auto;width:320px;max-height:none;background:var(--paper);border:var(--line) solid var(--ink);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px 10px;overflow:visible;pointer-events:auto;transform:scale(.8);transform-origin:top left}.panel__header{margin-bottom:8px}.panel__drag-handle{height:10px;border:2px solid var(--ink);border-radius:8px;margin-bottom:8px;cursor:grab;background:#f6f1e6;box-shadow:1px 1px 0 var(--ink)}.panel__drag-top{margin-bottom:14px}.panel__drag-bottom{margin-top:12px;margin-bottom:4px}.panel__title{font-size:1.3rem;font-weight:700;letter-spacing:.5px}.panel__subtitle{font-size:.9rem;opacity:.8}.panel__section{margin-top:10px;padding-top:10px;border-top:2px dashed var(--ink)}.section__title{font-weight:700;margin-bottom:8px;font-size:1.1rem}.section-toggle{display:flex;align-items:center;gap:8px;width:100%;border:var(--line) solid var(--ink);border-radius:10px;padding:8px 10px;background:#add8f2;font-size:1.1rem;font-weight:700;text-align:left;cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform .08s ease,box-shadow .08s ease;color:var(--ink)}.section-toggle:hover{transform:translate(1px,1px);box-shadow:0 0 0 var(--ink)}.section-toggle__icon{display:inline-block;width:18px;text-align:center;color:var(--ink)}.section-body{margin-top:8px}.section-body.collapsed{display:none}#library-body{overflow:hidden}#library-body .card-list{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px;height:320px;max-height:320px;min-height:320px;overflow-y:hidden;padding-right:6px}#library-body .card-list.scrollable{overflow-y:auto;scrollbar-color:var(--ink) #f6f1e6;scrollbar-width:thin}#library-body .card-list.scrollable::-webkit-scrollbar{width:10px}#library-body .card-list.scrollable::-webkit-scrollbar-track{background:#f6f1e6;border:2px solid var(--ink);border-radius:8px;box-shadow:2px 2px 0 var(--ink)}#library-body .card-list.scrollable::-webkit-scrollbar-thumb{background:var(--ink);border:2px solid var(--ink);border-radius:6px;box-shadow:1px 1px 0 var(--ink)}.card{border:var(--line) solid var(--ink);border-radius:10px;padding:8px;background:#fffefb;box-shadow:2px 2px 0 var(--ink);display:grid;grid-template-columns:auto 70px;gap:6px;align-items:center;cursor:grab;transition:transform .08s ease,box-shadow .08s ease}.card:hover{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.card__title{font-weight:700}.card__meta{font-size:.85rem;opacity:.8}.swatch{-webkit-appearance:none;appearance:none;width:64px;height:36px;border:var(--line) solid var(--ink);border-radius:10px;padding:0;box-shadow:1px 1px 0 var(--ink);background:transparent;cursor:pointer;overflow:hidden}.swatch::-webkit-color-swatch-wrapper{padding:0;margin:0;border-radius:inherit;width:100%;height:100%}.swatch::-webkit-color-swatch{border:none;padding:0;margin:-6px;border-radius:inherit;width:calc(100% + 22px);height:calc(100% + 12px);box-sizing:border-box}.swatch::-moz-color-swatch{border:none;padding:0;margin:-6px;border-radius:inherit;width:calc(100% + 22px);height:calc(100% + 12px);box-sizing:border-box}.field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding:6px 8px;border:1px dashed var(--ink);border-radius:8px}.field span{font-weight:600}.field input[type=number],.field input[type=color]{flex:0 0 90px;border:2px solid var(--ink);border-radius:8px;padding:4px 6px;background:#fff;font-family:var(--font);font-size:.95rem}.field .swatch{flex:0 0 auto}.field--slider{flex-direction:column;align-items:stretch}.slider-wrap{display:flex;align-items:center;gap:8px}.slider{appearance:none;-webkit-appearance:none;width:100%;height:10px;border-radius:999px;background:#fff;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:5px;background:var(--accent);border:2px solid var(--ink);box-shadow:1px 1px 0 var(--ink);cursor:pointer;transform:translateY(0)}.slider::-moz-range-thumb{width:18px;height:18px;border-radius:5px;background:var(--accent);border:2px solid var(--ink);box-shadow:1px 1px 0 var(--ink);cursor:pointer;transform:translateY(0)}.slider-value{min-width:34px;padding:4px 8px;border:2px solid var(--ink);border-radius:8px;background:#fffefb;box-shadow:1px 1px 0 var(--ink);font-weight:700;text-align:center}.btn{width:100%;border:2px solid var(--ink);border-radius:10px;padding:10px;font-weight:700;background:var(--accent);box-shadow:2px 2px 0 var(--ink);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;color:var(--ink)}.scrollable::-webkit-scrollbar{width:10px}.scrollable::-webkit-scrollbar-track{background:#f6f1e6;border:2px solid var(--ink);border-radius:8px;box-shadow:2px 2px 0 var(--ink)}.scrollable::-webkit-scrollbar-thumb{background:var(--ink);border:2px solid var(--ink);border-radius:6px;box-shadow:1px 1px 0 var(--ink)}.scrollable{overflow-y:auto;scrollbar-color:var(--ink) #f6f1e6;scrollbar-width:thin}.btn:hover{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.btn--small{width:auto;padding:8px 10px;font-size:.95rem}.btn--explode{background:var(--accent);min-width:90px}.btn--explode.btn--explode-active{background:#fff}.btn--export{background:var(--accent);min-width:90px}.btn--ghost{background:#fffefb}.btn--reset{background:var(--accent);min-width:90px}.btn--reset.btn--reset-active{background:#fff}.btn--title{font-size:1rem;font-weight:700}.controls-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.panel__footer{margin-top:8px;font-size:.85rem;opacity:.8}.hint{line-height:1.4;font-weight:700}@media(max-width:640px){.panel{width:calc(100% - 24px);left:12px;right:auto}}
