:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;--bg-color: #1a1a1a;--text-color: rgba(255, 255, 255, .87);--card-bg: #242424;--header-bg: #242424;--border-color: #444;--input-border: #333;--label-color: #aaa;--shadow-color: rgba(0, 0, 0, .3);--card-shadow: rgba(0, 0, 0, .5);--title-color: #ffffff;color:var(--text-color);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;justify-content:center;align-items:center;min-width:320px;min-height:100vh}h1{font-size:2.5em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{--bg-color: #f8f9fa;--text-color: #333;--card-bg: #ffffff;--header-bg: #ffffff;--border-color: #ddd;--input-border: #eee;--label-color: #666;--shadow-color: rgba(0, 0, 0, .05);--card-shadow: rgba(0, 0, 0, .08);--title-color: #222}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:800px;margin:0 auto;padding:1rem;text-align:center}body{background-color:var(--bg-color);color:var(--text-color)}.slack-dock{position:fixed;right:1rem;bottom:1rem;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:min(20rem,calc(100vw - 2rem));text-align:left;pointer-events:none}.slack-dock>*{pointer-events:auto}.slack-dock__chip{display:inline-flex;align-items:center;gap:.45rem;margin:0;padding:.45rem .75rem;border-radius:999px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-color);font-size:.8rem;font-weight:600;line-height:1.2;box-shadow:0 4px 16px var(--card-shadow, rgba(0, 0, 0, .35));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%}.slack-dock__chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12rem}.slack-dock__chip-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;background:var(--label-color)}.slack-dock__chip--checking .slack-dock__chip-dot{background:var(--label-color)}.slack-dock__chip--missing .slack-dock__chip-dot{background:#b08900}.slack-dock__chip--warn .slack-dock__chip-dot{background:#f08c00}.slack-dock__chip--ready .slack-dock__chip-dot{background:#2f9e44}.slack-dock__panel{width:min(20rem,calc(100vw - 2rem));padding:.85rem .9rem;border-radius:12px;border:1px solid var(--border-color);background:var(--card-bg);box-shadow:0 10px 32px var(--card-shadow, rgba(0, 0, 0, .45));font-size:.85rem;line-height:1.45}.slack-dock__panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}.slack-dock__panel-head strong{font-size:.9rem}.slack-dock__ver{color:var(--label-color);font-size:.75rem}.slack-dock__body{display:flex;flex-direction:column;gap:.55rem}.slack-dock__line{margin:0;color:var(--text-color)}.slack-dock__line.muted{color:var(--label-color);font-size:.8rem}.slack-dock__line a{color:#646cff}.slack-dock__line code{font-size:.85em}.slack-dock__field{display:flex;flex-direction:column;align-items:stretch;gap:.3rem;color:var(--label-color);font-size:.78rem}.slack-dock__field select{width:100%;padding:.35rem .45rem;border-radius:6px;border:1px solid var(--input-border);background:var(--bg-color);color:var(--text-color);font-size:.85rem}.slack-dock__actions{display:flex;gap:.4rem}.slack-dock__refresh{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;margin:0;padding:.4rem .65rem;font-size:.8rem;width:100%}.slack-dock__refresh-icon{font-size:1rem;line-height:1}.slack-dock__line--busy{display:flex;align-items:center;gap:.4rem}.slack-dock__chip-spinner{width:.65rem;height:.65rem;border-width:1.5px}.ui-spinner{display:inline-block;width:.85rem;height:.85rem;border:2px solid color-mix(in srgb,var(--label-color) 35%,transparent);border-top-color:var(--text-color);border-radius:50%;flex-shrink:0;animation:ui-spin .7s linear infinite;vertical-align:middle}@keyframes ui-spin{to{transform:rotate(360deg)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tab-bar{display:flex;justify-content:center;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.tab{padding:.75rem 1.5rem;background:transparent;color:var(--label-color);border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;font-size:1rem;font-weight:600;cursor:pointer;transition:color .2s,border-color .2s;text-decoration:none;display:inline-block}.tab:hover{background:transparent;color:var(--text-color);transform:none}.tab.active{color:var(--text-color);border-bottom-color:#646cff}.converter-field{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;width:100%}.converter-arrow{font-size:1.5rem;color:var(--label-color);line-height:1}button:disabled{background-color:var(--border-color);cursor:not-allowed;opacity:.6}button:disabled:hover{background-color:var(--border-color);transform:none}button.is-success{background-color:#2f9e44}button.is-success:hover{background-color:#2b8a3e}.canvas-container,.slack-preview-container{display:flex;flex-direction:column;align-items:center;margin:1.5rem 0}.slack-preview{max-width:100%;min-height:2.75rem;text-align:center;word-break:break-word;white-space:pre-wrap;color:var(--text-color)}.slack-preview.is-jumbo{line-height:2;font-size:1.125rem}.slack-preview.is-inline{line-height:1.6;font-size:1rem}.slack-preview.is-placeholder{opacity:.4}.slack-preview-emoji{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;color:#fff;font-family:ChosunGs,Gungsuhche,sans-serif;line-height:1;-webkit-user-select:none;user-select:none}.slack-preview.is-jumbo .slack-preview-emoji{width:32px;height:32px;margin:0 2px;border-radius:4px;font-size:28px}.slack-preview.is-inline .slack-preview-emoji{width:20px;height:20px;margin:0 1px;border-radius:3px;font-size:17px}.slack-preview-emoji.is-real{background:transparent!important;padding:0;overflow:hidden}.slack-preview-emoji.is-real img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit}.slack-preview-emoji.is-missing{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text-color) 35%,transparent);outline:1px dashed color-mix(in srgb,var(--label-color) 70%,transparent);outline-offset:0}button.slack-preview-emoji{border:none;padding:0;margin:0;color:inherit;background:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:ChosunGs,Gungsuhche,sans-serif;line-height:1}button.slack-preview-emoji.is-clickable:hover{filter:brightness(1.12);transform:scale(1.06)}button.slack-preview-emoji.is-clickable:focus-visible{outline:2px solid #646cff;outline-offset:2px}button.slack-preview-emoji.is-picker-open{outline:2px solid #646cff;outline-offset:2px}.emoji-pick-wrap{position:relative;display:inline-flex;vertical-align:middle}.emoji-variant-picker{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:40;min-width:9.5rem;max-height:14rem;overflow-y:auto;padding:.35rem;border-radius:8px;border:1px solid var(--border-color);background:var(--card-bg);box-shadow:0 8px 24px var(--card-shadow, rgba(0, 0, 0, .45));display:flex;flex-direction:column;gap:.2rem}.emoji-variant-picker__item{display:flex;align-items:center;gap:.5rem;width:100%;margin:0;padding:.35rem .45rem;border:none;border-radius:6px;background:transparent;color:var(--text-color);font-size:.85rem;text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.emoji-variant-picker__item:hover{background:color-mix(in srgb,var(--text-color) 10%,transparent)}.emoji-variant-picker__item.is-selected{background:color-mix(in srgb,#646cff 28%,transparent)}.emoji-variant-picker__img{width:22px;height:22px;object-fit:contain;flex-shrink:0;border-radius:3px}.emoji-variant-picker__img-placeholder{width:22px;height:22px;flex-shrink:0;border-radius:3px;background:var(--border-color)}.emoji-variant-picker__name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;white-space:nowrap}.converter-preview-hint{margin:.5rem 0 0;max-width:28rem;font-size:.78rem;color:var(--label-color);line-height:1.4}.generator-slack-meta{display:flex;align-items:center;gap:.45rem;width:100%;box-sizing:border-box;margin-top:1rem;padding:.4rem .55rem;border-radius:8px;border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-color) 65%,var(--card-bg));text-align:left;font-size:.8rem;line-height:1.3}.generator-slack-meta.is-registered{border-color:color-mix(in srgb,#2f9e44 55%,var(--border-color))}.generator-slack-meta.is-missing{border-color:color-mix(in srgb,var(--label-color) 40%,var(--border-color))}.generator-slack-meta__img{width:22px;height:22px;object-fit:contain;border-radius:3px;flex-shrink:0}.generator-slack-meta__placeholder{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;background:var(--border-color);color:var(--text-color);font-family:ChosunGs,Gungsuhche,sans-serif;font-size:.85rem;flex-shrink:0;opacity:.75}.generator-slack-meta__name{color:var(--text-color);font-size:.82rem}.generator-slack-meta__label{margin-left:auto;color:var(--label-color);font-size:.78rem;white-space:nowrap}.generator-slack-meta.is-registered .generator-slack-meta__label{color:#2f9e44;font-weight:600}.generator-slack-meta__busy{display:inline-flex;align-items:center;gap:.35rem}.generator-slack-meta__spinner{width:.7rem;height:.7rem;border-width:1.5px}.generator-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.75rem}.generator-actions button{margin:0;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.generator-action-spinner{width:.85rem;height:.85rem;border-width:2px}.generator-register-error{margin:.75rem 0 0;font-size:.85rem;color:#fa5252;line-height:1.4}canvas{box-shadow:0 10px 30px var(--shadow-color);border-radius:8px;background-color:#fff}h1{font-size:1.8rem;color:var(--title-color);margin-bottom:1rem}.card{background:var(--card-bg);padding:1.5rem;border-radius:16px;box-shadow:0 4px 20px var(--card-shadow)}.input-group-vertical{display:flex;flex-direction:column;gap:1.2rem;align-items:center;margin-bottom:.5rem}.input-row{display:flex;flex-wrap:nowrap;gap:.5rem;justify-content:center;align-items:flex-start;width:100%;overflow-x:auto}.main-input{align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border-color);width:100%;flex:none}.input-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1;min-width:140px;text-align:center}label{font-size:.9rem;font-weight:600;color:var(--label-color);margin:0}input[type=text]{font-size:1.5rem;width:100%;max-width:240px;height:3.5rem;text-align:center;border:2px solid var(--input-border);background-color:var(--card-bg);color:var(--text-color);border-radius:8px;transition:border-color .2s}input[type=text]:focus{outline:none;border-color:#646cff}textarea{width:100%;box-sizing:border-box;padding:.75rem;font-size:1rem;border:2px solid var(--input-border);background-color:var(--card-bg);color:var(--text-color);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;transition:border-color .2s}textarea:focus{outline:none;border-color:#646cff}input[type=color]{width:3rem;height:3rem;padding:0;border:1px solid var(--border-color);border-radius:50%;cursor:pointer;overflow:hidden}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:50%}select,input[type=number]{padding:.5rem;border-radius:6px;border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-color);font-size:1rem}button{background-color:#646cff;color:#fff;padding:.8rem 2rem;font-size:1.1rem;font-weight:700;border-radius:12px;border:none;cursor:pointer;transition:transform .1s,background-color .2s}button:hover{background-color:#535bf2;transform:translateY(-2px)}button:active{transform:translateY(0)}.gradient-toggle{display:inline-flex;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.gradient-toggle button{padding:.2rem .45rem;font-size:.7rem;font-weight:600;border-radius:0;background:transparent;color:var(--label-color);line-height:1.2}.gradient-toggle button+button{border-left:1px solid var(--border-color)}.gradient-toggle button:hover{background:transparent;color:var(--text-color);transform:none}.gradient-toggle button[aria-pressed=true]{background:#646cff;color:#fff}@font-face{font-family:ChosunGs;src:url(https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@1.0/ChosunGs.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Gungsuhche;src:url(/gungsuhche-Regular.woff2) format("woff2");font-weight:400;font-style:normal}
