@font-face{font-family:NotoSansTC;src:url(/hype-sign/fonts/NotoSansTC.woff2) format("woff2-variations"),url(/hype-sign/fonts/NotoSansTC.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:NotoSerifTC;src:url(/hype-sign/fonts/NotoSerifTC.woff2) format("woff2-variations"),url(/hype-sign/fonts/NotoSerifTC.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:LxgwWenKaiTC;src:url(/hype-sign/fonts/LXGWWenKaiTC-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:LxgwWenKaiTC;src:url(/hype-sign/fonts/LXGWWenKaiTC-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:LxgwWenKaiTC;src:url(/hype-sign/fonts/LXGWWenKaiTC-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:AtkinsonHyperlegibleNext;src:url(/hype-sign/fonts/AtkinsonHyperlegibleNext.woff2) format("woff2-variations"),url(/hype-sign/fonts/AtkinsonHyperlegibleNext.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}:root{--glass-bg: rgba(22, 22, 26, .58);--glass-bg-elev: rgba(255, 255, 255, .06);--glass-bg-elev-hover: rgba(255, 255, 255, .1);--glass-bg-sunken: rgba(0, 0, 0, .28);--glass-stroke: rgba(255, 255, 255, .1);--glass-stroke-strong: rgba(255, 255, 255, .2);--glass-highlight: rgba(255, 255, 255, .08);--text: rgba(255, 255, 255, .96);--text-muted: rgba(255, 255, 255, .56);--text-faint: rgba(255, 255, 255, .36);--accent: #5a9bff;--accent-soft: rgba(90, 155, 255, .18);--danger: #ff5a5a;--danger-soft: rgba(255, 90, 90, .22);--panel-width: 380px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--blur-glass: blur(40px) saturate(180%);--sai-top: env(safe-area-inset-top, 0px);--sai-right: env(safe-area-inset-right, 0px);--sai-bottom: env(safe-area-inset-bottom, 0px);--sai-left: env(safe-area-inset-left, 0px);--mobile-panel-height: 360px;font-family:var(--font-family, system-ui, sans-serif);color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;height:100lvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{background:#000;color:var(--text)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}input[type=range]{width:100%}.bg-layer{position:fixed;top:0;left:0;width:100vw;height:100lvh;z-index:0;pointer-events:none}.display-root{position:fixed;top:var(--sai-top);left:0;width:100vw;height:calc(100lvh - var(--sai-top));z-index:1;overflow:hidden;user-select:none;-webkit-user-select:none}.drawer{position:fixed;background:var(--glass-bg);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);z-index:100;display:flex;flex-direction:column;padding-top:var(--sai-top);padding-bottom:var(--sai-bottom);transition:transform .28s cubic-bezier(.32,.72,0,1),opacity .18s ease,box-shadow .28s cubic-bezier(.32,.72,0,1)}.drawer.drawer--split{top:0;right:0;bottom:0;left:auto;width:var(--panel-width);max-width:100vw;border-left:1px solid var(--glass-stroke);transform:translate(100%)}.drawer.drawer--split.open{transform:translate(0);box-shadow:-16px 0 48px #00000073,inset 0 1px 0 var(--glass-highlight)}.drawer.drawer--floating{top:0;left:0;right:auto;bottom:auto;width:var(--panel-width);max-width:100vw;height:min(var(--floating-height, 600px),calc(100lvh - 40px));border:1px solid var(--glass-stroke);border-radius:var(--radius-lg);box-shadow:0 16px 48px #00000073,inset 0 1px 0 var(--glass-highlight);transform:scale(.96);transform-origin:top right;opacity:0;pointer-events:none;overflow:hidden}.drawer.drawer--floating.open{transform:scale(1);opacity:1;pointer-events:auto}@media(max-width:767px){.drawer.drawer--split,.drawer.drawer--floating{top:max(0px,calc(100lvh - var(--mobile-panel-height, 360px)))!important;right:0!important;bottom:auto!important;left:0!important;width:100vw;max-width:none;height:var(--mobile-panel-height, 360px);max-height:90lvh;border-left:none;border-right:none;border-bottom:none;border-top:1px solid var(--glass-stroke);border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(100%);box-shadow:none;transform-origin:center bottom;opacity:1;pointer-events:auto;padding-top:0}.drawer.drawer--split.open,.drawer.drawer--floating.open{transform:translateY(0);box-shadow:0 -16px 48px #00000073,inset 0 1px 0 var(--glass-highlight)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--glass-stroke);flex-shrink:0}.drawer-header.draggable{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.drawer-title{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em}.drawer-header-actions{display:flex;gap:6px;align-items:center}.drawer-close,.drawer-mode-toggle{width:36px;height:36px;padding:0;border-radius:var(--radius-md);border:1px solid var(--glass-stroke);background:var(--glass-bg-elev);color:var(--text);font-size:16px;display:grid;place-items:center;transition:background-color .14s ease,border-color .14s ease}.drawer-close:hover,.drawer-mode-toggle:hover{background:var(--glass-bg-elev-hover);border-color:var(--glass-stroke-strong)}.drawer-resize-handle{display:flex;width:100%;height:18px;cursor:ns-resize;touch-action:none;flex-shrink:0;align-items:center;justify-content:center;background:transparent;border:none;padding:0}.drawer-resize-handle:after{content:"";width:36px;height:4px;border-radius:2px;background:var(--text-faint)}.drawer-resize-handle:hover:after{background:var(--text-muted)}.drawer-tabs{display:flex;gap:4px;padding:8px 12px;background:var(--glass-bg-sunken);border-bottom:1px solid var(--glass-stroke);flex-shrink:0}.drawer-tabs button{flex:1;height:36px;padding:0 10px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;letter-spacing:.01em;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.drawer-tabs button:hover{color:var(--text);background:var(--glass-bg-elev)}.drawer-tabs button.active{background:var(--glass-bg-elev);color:var(--text);border-color:var(--glass-stroke-strong);box-shadow:0 1px 2px #00000040,inset 0 1px 0 var(--glass-highlight)}.drawer-body{flex:1;overflow-y:auto;padding:18px 16px 24px}.tab-pane{display:flex;flex-direction:column;gap:22px}.tab-pane[hidden]{display:none}.section{display:flex;flex-direction:column;gap:10px}.section-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.row{display:flex;align-items:center;gap:8px}.row-spread{display:flex;align-items:center;justify-content:space-between;gap:8px}.muted{color:var(--text-faint);font-size:12px}.slider-with-note{display:flex;flex-direction:column;gap:4px}.value-pill{font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted);min-width:56px;text-align:right;letter-spacing:.02em}.btn{height:40px;min-width:44px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--glass-stroke);background:var(--glass-bg-elev);color:var(--text);font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background-color .14s ease,border-color .14s ease,transform 80ms ease,box-shadow .14s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.btn:hover{background:var(--glass-bg-elev-hover);border-color:var(--glass-stroke-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;pointer-events:none}.btn.primary{background:var(--accent);color:#fff;border-color:#fff3;box-shadow:0 1px 3px #0003,inset 0 1px #ffffff2e}.btn.primary:hover{background:#6ea7ff;border-color:#ffffff47}.btn.danger{color:var(--danger);border-color:var(--danger-soft)}.btn.danger:hover{border-color:#ff5a5a80;background:#ff5a5a14}.btn.danger.armed{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.armed{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.active{background:var(--accent);border-color:#fff3;color:#fff}.btn.icon{width:40px;padding:0}.input,.textarea{width:100%;background:var(--glass-bg-sunken);border:1px solid var(--glass-stroke);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;color:var(--text);resize:vertical;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.textarea{min-height:88px;font-family:inherit;line-height:1.4}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.textarea:focus{outline:none;border-color:var(--accent);background:#0000005c;box-shadow:0 0 0 3px var(--accent-soft)}.tab-row{display:flex;gap:3px;background:var(--glass-bg-sunken);border:1px solid var(--glass-stroke);border-radius:var(--radius-md);padding:3px}.tab-row .tab{flex:1;height:32px;border-radius:7px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;transition:background-color .14s ease,color .14s ease}.tab-row .tab:hover{color:var(--text)}.tab-row .tab.active{background:var(--glass-bg-elev);color:var(--text);box-shadow:0 1px 2px #00000040,inset 0 1px 0 var(--glass-highlight)}.swatch{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--glass-stroke-strong);background:transparent;padding:0;overflow:hidden;position:relative;flex-shrink:0;box-shadow:inset 0 1px 0 var(--glass-highlight)}.swatch input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;padding:0;background:transparent;cursor:pointer}.stop-row{display:grid;grid-template-columns:36px 1fr 60px 32px;gap:8px;align-items:center}.stop-row .pos-input{width:100%;text-align:right;background:var(--glass-bg-sunken);border:1px solid var(--glass-stroke);border-radius:7px;padding:6px 8px;font-size:12px;color:var(--text)}.stop-row .pos-input:focus{outline:none;border-color:var(--accent)}.stop-bar{position:relative;height:30px;border-radius:var(--radius-md);border:1px solid var(--glass-stroke);overflow:hidden;cursor:pointer;box-shadow:inset 0 0 0 1px #0003}.stop-bar-marker{position:absolute;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1px #00000080;transform:translate(-50%);pointer-events:none}.font-list{display:flex;flex-direction:column;gap:6px}.font-row{width:100%;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--glass-stroke);background:var(--glass-bg-elev);color:var(--text);display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.font-row:hover{background:var(--glass-bg-elev-hover);border-color:var(--glass-stroke-strong)}.font-row.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.font-row-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:system-ui,-apple-system,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif}.font-row-sample{font-size:18px;line-height:1.5;white-space:pre-line;word-break:break-word;overflow-wrap:anywhere}.font-divider{border:none;height:1px;margin:4px 4px 0;background:var(--glass-stroke)}.preset-section-header{display:flex;align-items:center;justify-content:space-between}.preset-list{display:flex;flex-direction:column;gap:6px}.preset-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 10px;background:var(--glass-bg-elev);border:1px solid var(--glass-stroke);border-radius:var(--radius-md);transition:background-color .14s ease,border-color .14s ease}.preset-row--editing{grid-template-columns:auto auto 1fr auto}.preset-row:hover{background:var(--glass-bg-elev-hover);border-color:var(--glass-stroke-strong)}.preset-name{display:flex;align-items:center;gap:8px;min-width:0}.preset-swatches{display:flex;gap:3px;flex-shrink:0}.preset-swatches>div{width:18px;height:18px;border-radius:5px;border:1px solid var(--glass-stroke-strong)}.type-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0;cursor:help;padding:2px;border-radius:4px}.type-icon-wrapper:hover{color:var(--text)}.type-tooltip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#0a0a0ceb;border:1px solid var(--glass-stroke);color:var(--text);padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500;letter-spacing:.02em;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .14s ease,transform .14s ease;z-index:200;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.type-icon-wrapper:hover .type-tooltip,.type-icon-wrapper:focus-visible .type-tooltip,.type-icon-wrapper.show-tip .type-tooltip{opacity:1}.preset-name-text{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.radial-pad{position:relative;width:100%;aspect-ratio:1 / 1;max-width:220px;border-radius:var(--radius-lg);border:1px solid var(--glass-stroke-strong);cursor:crosshair;touch-action:none;box-shadow:inset 0 0 0 1px #00000040}.radial-pad-handle{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #000;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 4px #0006}.range,input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:30px;background:transparent}.range::-webkit-slider-runnable-track,input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--glass-bg-sunken);border-radius:999px;border:1px solid var(--glass-stroke)}.range::-webkit-slider-thumb,input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid var(--glass-stroke-strong);margin-top:-9px;box-shadow:0 1px 4px #00000059;cursor:pointer}.range::-moz-range-track,input[type=range]::-moz-range-track{height:4px;background:var(--glass-bg-sunken);border-radius:999px;border:1px solid var(--glass-stroke)}.range::-moz-range-thumb,input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:1px solid var(--glass-stroke-strong);box-shadow:0 1px 4px #00000059;cursor:pointer}.version-footer{display:flex;flex-direction:column;gap:10px;margin-top:8px;font-size:11px;color:var(--text-faint)}.version-line{font-variant-numeric:tabular-nums;line-height:1.4}.version-links{display:flex;gap:8px}.icon-link{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--glass-bg-elev);border:1px solid var(--glass-stroke);color:var(--text-muted);text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.icon-link:hover,.icon-link:focus-visible{background:var(--glass-bg-elev-hover);color:var(--text);border-color:var(--glass-stroke-strong)}.icon-link[data-brand=github]:hover,.icon-link[data-brand=github]:focus-visible{color:#fff}.icon-link[data-brand=kofi]:hover,.icon-link[data-brand=kofi]:focus-visible{color:#ff5e5b;background:#ff5e5b1f;border-color:#ff5e5b80}.icon-link[data-brand=paypal]:hover,.icon-link[data-brand=paypal]:focus-visible{color:#0070ba;background:#0070ba29;border-color:#0070ba99}
