*{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0a0a0a;--color-surface: #1a1a1a;--color-surface-hover: #222222;--color-border: #2a2a2a;--color-text: #e5e5e5;--color-text-secondary: #a0a0a0;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-token-bg: #2a2a2a;--color-token-text: #e5e5e5;--color-token-border: #3a3a3a;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace}body{font-family:var(--font-mono);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;-webkit-overflow-scrolling:touch}.container{max-width:1400px;margin:0 auto;padding:2rem}header{text-align:center;margin-bottom:2rem;position:relative}h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;font-family:var(--font-mono);background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.subtitle{color:var(--color-text-secondary);font-size:.875rem;font-family:var(--font-mono)}.header-actions{margin-top:1rem;display:flex;justify-content:center;gap:1rem}.header-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;color:var(--color-text);text-decoration:none;font-size:.875rem;transition:all .2s}.header-link:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}.top-models{margin-bottom:2rem;text-align:center}.top-models label{display:block;margin-bottom:.75rem;font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.model-chips{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.model-chip{padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:2rem;color:var(--color-text);font-size:.875rem;font-family:var(--font-mono);cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:rgba(59,130,246,.2)}.model-chip:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}.model-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.controls{display:flex;gap:2rem;margin-bottom:2rem;align-items:flex-start;flex-wrap:wrap}.control-group{flex:1;min-width:250px}.control-group label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}select{width:100%;padding:.75rem 1rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:.5rem;font-size:.875rem;font-family:var(--font-mono);cursor:pointer;transition:all .2s}select:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;flex:1}@media (max-width: 900px){.stats{grid-template-columns:repeat(2,1fr)}}.stat{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.stat-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.5rem;font-weight:700;color:var(--color-primary);font-family:var(--font-mono);min-width:130px;text-align:left;font-variant-numeric:tabular-nums}.split-view{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}@media (max-width: 1024px){.split-view{grid-template-columns:1fr}}.editor-section,.output-section{display:flex;flex-direction:column;min-height:0}.editor-header,.output-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.editor-controls{display:flex;gap:.75rem;align-items:center}.toggle-control{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-control input[type=checkbox]{cursor:pointer}h2{font-size:1.25rem;font-weight:600}textarea{width:100%;flex:1;min-height:400px;padding:1rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:.5rem;font-size:.875rem;font-family:var(--font-mono);line-height:1.6;resize:none;transition:none;will-change:contents;letter-spacing:normal}textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}textarea::placeholder{color:var(--color-text-secondary)}.btn-secondary{padding:.5rem 1rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:rgba(59,130,246,.2)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-primary)}.btn-secondary:active{transform:translateY(1px)}.tokens-container{flex:1;min-height:400px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;font-family:var(--font-mono);font-size:.875rem;line-height:1.6;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:pan-y}.tokens-container canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--color-text-secondary);font-size:.875rem}.token{display:inline;padding:.125rem .25rem;border-radius:.25rem;cursor:pointer;position:relative;transition:all .15s;border-bottom:2px solid transparent}.token:hover{filter:brightness(1.2);border-bottom-color:var(--color-primary)}.token:hover:after{content:attr(data-token-id);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--color-bg);border:1px solid var(--color-border);border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;white-space:nowrap;z-index:100;margin-bottom:.25rem;box-shadow:0 4px 12px #00000080}.disclaimer{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;font-size:.75rem;color:var(--color-text-secondary);text-align:center;margin-bottom:2rem}.disclaimer strong{color:var(--color-text)}.disclaimer a{color:var(--color-primary);text-decoration:none}.disclaimer a:hover{text-decoration:underline}footer{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-secondary);font-size:.75rem}footer a{color:var(--color-primary);text-decoration:none;transition:color .2s}footer a:hover{color:var(--color-primary-hover);text-decoration:underline}.output-controls{display:flex;gap:.5rem}select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.container{padding:1rem}h1{font-size:1.75rem}.subtitle{font-size:.75rem}.header-link{font-size:.75rem;padding:.375rem .75rem}.model-chips{gap:.375rem}.model-chip{font-size:.75rem;padding:.375rem .75rem}.controls{flex-direction:column;gap:1.5rem}.stats{width:100%;justify-content:space-between}.stat-value{font-size:1.25rem;min-width:80px}.editor-header,.output-header{flex-direction:column;align-items:flex-start;gap:.75rem}.editor-controls{flex-wrap:wrap}textarea,.tokens-container{min-height:300px}}@media (max-width: 480px){.container{padding:.75rem}h1{font-size:1.5rem}.header-actions{flex-direction:column;width:100%}.header-link{width:100%;justify-content:center}.model-chips{gap:.25rem}.model-chip{font-size:.7rem;padding:.3rem .6rem}.stats{grid-template-columns:1fr 1fr;gap:1rem}.stat-value{font-size:1.1rem}.split-view{gap:1rem}select{font-size:.8rem}}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#fff3;border-radius:5px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#ffffff4d;background-clip:padding-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.token{animation:fadeIn .2s ease-out}
