*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100vw;height:100vh;height:100dvh;height:100lvh;background:#fafaf7;color:#1a1a1a;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;cursor:default;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit}button{cursor:pointer}body.kw-letterbox{background:#d8d8d5}#stage{display:block;width:100vw;height:100vh;height:100dvh;height:100lvh;touch-action:none}#overlay{position:fixed;inset:0;pointer-events:none}#controls.kw-controls{position:fixed;top:max(16px,env(safe-area-inset-top,16px));right:max(16px,env(safe-area-inset-right,16px));z-index:100;pointer-events:none}.kw-panel{pointer-events:auto;width:280px;padding:16px;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #e5e5e5;border-radius:6px;max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px);overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:max(16px,env(safe-area-inset-bottom,0px));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.4;color:#1a1a1a;display:flex;flex-direction:column;gap:14px;transition:opacity .12s ease}@supports (max-height: 100dvh){.kw-panel{max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px)}}.kw-panel.is-hidden{opacity:0;pointer-events:none}.kw-header{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#1a1a1a;padding-bottom:8px;border-bottom:1px solid #e5e5e5}.kw-section{display:flex;flex-direction:column;gap:8px}.kw-section-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6b6b6b}.kw-grid{display:grid;gap:6px}.kw-grid-2{grid-template-columns:repeat(2,1fr)}.kw-grid-3{grid-template-columns:repeat(3,1fr)}.kw-grid-4{grid-template-columns:repeat(4,1fr)}.kw-grid-5{grid-template-columns:repeat(5,1fr)}.kw-grid-compact{gap:4px}.kw-btn{height:28px;padding:0 8px;background:transparent;border:1px solid #1a1a1a;border-radius:0;color:#1a1a1a;font:inherit;font-size:11px;letter-spacing:0;cursor:pointer;transition:background-color .1s ease,color .1s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.kw-btn:hover:not(.is-active):not(:disabled){background-color:#0000000a}.kw-btn:focus-visible{outline:1px solid #1a1a1a;outline-offset:2px}.kw-btn.is-active{background-color:#1a1a1a;color:#fff}.kw-btn:disabled{opacity:.5;cursor:not-allowed}.kw-btn-wide{width:100%}.kw-btn.is-busy{font-style:italic}.kw-btn-record.is-recording{border-color:#d14343;color:#d14343}.kw-btn-record.is-recording:hover:not(:disabled){background-color:#d143430f}.kw-record-icon{font-size:9px;line-height:1}.kw-seed-row{display:flex;align-items:center;gap:8px}.kw-seed{flex:1;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;letter-spacing:.08em;color:#1a1a1a;padding:0 4px;user-select:text}.kw-seed-row .kw-btn{flex:0 0 auto;padding:0 12px}.kw-slider-row{display:grid;grid-template-columns:110px 1fr 50px;align-items:center;gap:8px;min-height:44px}.kw-slider-label{font-size:11px;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kw-slider-value{text-align:right;font-variant-numeric:tabular-nums;font-size:11px;color:#6b6b6b}.kw-slider{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;margin:0;touch-action:pan-x}.kw-slider:focus-visible{outline:1px solid #1a1a1a;outline-offset:2px}.kw-slider::-webkit-slider-runnable-track{height:1px;background:#1a1a1a;border:none}.kw-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#1a1a1a;border:none;margin-top:-9.5px;cursor:pointer}.kw-slider::-moz-range-track{height:1px;background:#1a1a1a;border:none}.kw-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#1a1a1a;border:none;-moz-appearance:none;appearance:none;cursor:pointer}.kw-resolution-row{display:flex;flex-direction:column;gap:6px}.kw-inline-label{font-size:11px;color:#6b6b6b}.kw-record-indicator{display:flex;align-items:center;gap:6px;margin-top:2px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;color:#d14343}.kw-record-indicator[hidden]{display:none}.kw-record-dot{font-size:9px;line-height:1;animation:kw-pulse 1.2s ease-in-out infinite}.kw-record-time{font-variant-numeric:tabular-nums;letter-spacing:.04em}@keyframes kw-pulse{0%,to{opacity:1}50%{opacity:.4}}.kw-hide-ui-section{margin-top:12px;padding-top:12px;border-top:1px solid #e5e5e5}.kw-bg-file{display:none}.kw-bg-choose-row{display:flex;flex-direction:column}.kw-bg-preview-row{display:flex;align-items:center;gap:8px;padding:6px 0}.kw-bg-preview-row[hidden]{display:none}.kw-bg-thumb{width:64px;height:36px;object-fit:cover;border:1px solid #d5d5d5;border-radius:3px;background:#f5f5f3;flex:none}.kw-bg-filename{flex:1 1 auto;font-size:11px;color:#4a4a4a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.kw-btn-small{padding:4px 8px;font-size:10px}.kw-hue-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.kw-hue-section[hidden]{display:none}.kw-hue-slider-row{display:grid;grid-template-columns:36px 1fr 16px;align-items:center;gap:8px;min-height:44px}.kw-hue-label{font-size:10px;color:#6b6b6b}.kw-hue-slider{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;margin:0;touch-action:pan-x}.kw-hue-slider:focus-visible{outline:1px solid #1a1a1a;outline-offset:2px}.kw-hue-slider::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:var(--hue-track, #888);border:1px solid rgba(0,0,0,.15)}.kw-hue-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid #1a1a1a;margin-top:-6px;cursor:pointer}.kw-hue-slider::-moz-range-track{height:8px;border-radius:4px;background:var(--hue-track, #888);border:1px solid rgba(0,0,0,.15)}.kw-hue-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid #1a1a1a;-moz-appearance:none;appearance:none;cursor:pointer}.kw-hue-swatch{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.kw-hue-apply-btn{margin-top:4px}.kw-halftone-shape-btn{font-size:16px;line-height:1}.kw-text-row{display:grid;grid-template-columns:40px 1fr;align-items:start;gap:8px}.kw-text-label{font-size:11px;color:#6b6b6b;padding-top:6px}.kw-text-input{height:24px;padding:0 4px;background:transparent;border:none;border-bottom:1px solid #1a1a1a;border-radius:0;color:#1a1a1a;font:inherit;font-size:11px;width:100%;box-sizing:border-box}.kw-text-input:focus{outline:none;border-bottom-color:#1a1a1a;background:#00000008}.kw-text-input:focus-visible{outline:1px solid #1a1a1a;outline-offset:2px}.kw-text-input--multi{height:auto;min-height:24px;padding:4px;resize:none;overflow-y:auto;line-height:1.4;font-family:inherit;vertical-align:top}:root{--kw-title-letter-spacing-h: -.02em;--kw-title-letter-spacing-v: .05em}.kw-text{position:absolute;pointer-events:none;user-select:none;color:#1a1a1a;margin:0;padding:0;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.kw-text--title{font-family:Zen Kaku Gothic New,sans-serif;font-weight:500;letter-spacing:var(--kw-title-letter-spacing-h);font-feature-settings:"palt" 1;line-height:1;white-space:pre-line}.kw-text--title-vertical{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:var(--kw-title-letter-spacing-v);max-height:calc(100% - 64px)}.kw-text--mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1.6;white-space:pre}.kw-text--tl{top:32px;left:32px;text-align:left}.kw-text--tr{top:32px;right:32px;text-align:right}.kw-text--bl{bottom:32px;left:32px;text-align:left}.kw-text--br{bottom:32px;right:32px;text-align:right}
