:root{--bg: #1b2433;--bg-2: #243047;--panel: #2c3a55;--panel-2: #36486a;--border: #10151f;--text: #f2f5fa;--text-dim: #a9b4c8;--accent: #ffd34d;--accent-2: #4dc3ff;--danger: #ff5d55;--ok: #6fdc6f;--green: #5bb04a;--blue: #2f9be0;--red: #e04a3f;--orange: #f0a030;--font-pixel: "Press Start 2P", ui-monospace, monospace;--font-ui: "Rubik", system-ui, sans-serif;--radius: 10px;--shadow: 0 4px 0 var(--border);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);overflow:hidden;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}#app{position:fixed;top:0;right:0;bottom:0;left:0}canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block}button{font-family:inherit}.tf-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:3px solid var(--border);border-radius:var(--radius);background:var(--panel-2);color:var(--text);font:600 16px var(--font-ui);padding:10px 18px;min-height:44px;cursor:pointer;box-shadow:var(--shadow);transition:transform .06s,background .12s}.tf-btn:hover{background:#42567d}.tf-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border)}.tf-btn.primary{background:var(--accent);color:#2a1f00}.tf-btn.primary:hover{background:#ffe07a}.tf-btn.danger{background:var(--danger)}.tf-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.tf-panel{background:var(--panel);border:3px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.tf-title{font-family:var(--font-pixel);letter-spacing:1px}.tf-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch}.tf-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;min-height:44px;width:100%;padding:8px 36px 8px 12px;border:3px solid var(--border);border-radius:8px;color:var(--text);font:500 15px var(--font-ui);background:var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0h12L6 8z' fill='%23a9b4c8'/%3E%3C/svg%3E") no-repeat right 12px center;cursor:pointer;text-overflow:ellipsis}.tf-select:disabled{opacity:.45;cursor:not-allowed}.tf-select:focus-visible,.tf-switch:focus-visible,.tf-range:focus-visible,.tf-seg button:focus-visible,.tf-btn:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.tf-select optgroup{color:var(--text-dim);background:var(--bg)}.tf-select option{color:var(--text);background:var(--bg-2)}.tf-switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:64px;height:36px;margin:4px 0;border-radius:999px;border:3px solid var(--border);background:#4b5875;position:relative;cursor:pointer;transition:background .15s}.tf-switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#e9eef6;box-shadow:0 2px 0 var(--border);transition:transform .15s}.tf-switch:checked{background:var(--ok)}.tf-switch:checked:after{transform:translate(28px)}.tf-seg{display:inline-flex;border:3px solid var(--border);border-radius:10px;overflow:hidden;flex:none}.tf-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--bg-2);color:var(--text-dim);font:600 14px var(--font-ui);min-height:40px;min-width:56px;padding:0 12px;cursor:pointer}.tf-seg button+button{border-left:3px solid var(--border)}.tf-seg button[aria-checked=true]{background:var(--accent);color:#2a1f00}.tf-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;margin:0}.tf-range::-webkit-slider-runnable-track{height:12px;border-radius:999px;border:3px solid var(--border);background:linear-gradient(90deg,var(--accent-2) var(--fill, 50%),var(--bg-2) var(--fill, 50%))}.tf-range::-moz-range-track{height:6px;border-radius:999px;border:3px solid var(--border);background:var(--bg-2)}.tf-range::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent-2)}.tf-range::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:6px;background:var(--accent);border:3px solid var(--border);box-shadow:0 2px 0 var(--border)}.tf-range::-moz-range-thumb{width:20px;height:20px;border-radius:6px;background:var(--accent);border:3px solid var(--border)}.tf-range:disabled{opacity:.4;cursor:not-allowed}.tf-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#080c14b3;display:grid;place-items:center;padding:16px;animation:tf-fade .12s ease-out}.tf-modal{width:min(440px,100%);max-height:calc(100% - 32px);display:flex;flex-direction:column;gap:12px;padding:18px}.tf-modal h2{margin:0;font-size:14px;color:var(--accent);line-height:1.5}.tf-modal p{margin:0;line-height:1.5}.tf-modal-body{min-height:0}.tf-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@keyframes tf-fade{0%{opacity:0}}
