*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:#000;color:#ededed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}::selection{background:var(--brand, #E8384F);color:#fff}a{text-decoration:none;color:inherit}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md, 8px);font-size:14px;font-weight:500;border:none;cursor:pointer;transition:all .15s ease;font-family:inherit;line-height:1.4}.btn-primary{background:var(--white, #fff);color:#000}.btn-primary:hover{background:#ccc}.btn-secondary{background:transparent;color:var(--text-primary, #ededed);border:1px solid var(--border, #1f1f1f)}.btn-secondary:hover{border-color:var(--border-hover, #333);background:var(--bg-hover, #111)}.btn-ghost{background:none;color:var(--text-secondary, #888);border:none}.btn-ghost:hover{color:var(--text-primary, #ededed)}.btn-brand{background:var(--brand, #E8384F);color:#fff}.btn-brand:hover{opacity:.9}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15px}.btn-danger{background:transparent;color:var(--error, #EE5555);border:none}.btn-danger:hover{background:var(--error-dim, rgba(238,85,85,.12));color:var(--error, #EE5555)}.btn:disabled{opacity:.3;cursor:not-allowed}.fade-in{animation:t274-fade-in .2s ease-out}@keyframes t274-fade-in{0%{opacity:0}to{opacity:1}}button:not(:disabled):hover{transform:scale(1.02);transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.skeleton{background:linear-gradient(90deg,#1a1a1a 25%,#2a2a2a,#1a1a1a 75%);background-size:200% 100%;animation:t274-skeleton 1.5s ease-in-out infinite;border-radius:6px}@keyframes t274-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.thinking-dots span{animation:t274-dot-bounce 1.4s ease-in-out infinite;display:inline-block}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes t274-dot-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}.typewriter-cursor{display:inline-block;width:2px;height:1em;background:#e8384f;margin-left:2px;animation:t274-blink .8s step-end infinite;vertical-align:text-bottom}@keyframes t274-blink{0%,to{opacity:1}50%{opacity:0}}
