.stream-hub{margin:0 auto;max-width:900px;padding:var(--space-lg)}.stream-hub__loading{align-items:center;display:flex;flex-direction:column;gap:var(--space-md);justify-content:center;min-height:50vh}.spinner{animation:spin .8s linear infinite;border:3px solid var(--glass-border);border-radius:50%;border-top-color:var(--color-brand-primary);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.streamer-view__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-lg)}.streamer-view__header h1{font-family:var(--font-display);font-size:var(--text-display);margin:0}.connection-status{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.08em;padding:4px 12px}.connection-status.connected{border-color:var(--color-accent-success);color:var(--color-accent-success)}.connection-status.disconnected{border-color:var(--color-accent-critical);color:var(--color-accent-critical)}.twitch-connect-card{margin-bottom:var(--space-lg)}.twitch-connected{align-items:center;display:flex;gap:var(--space-md)}.twitch-avatar{border:2px solid var(--color-brand-primary);border-radius:50%;height:48px;width:48px}.twitch-info{display:flex;flex:1;flex-direction:column;gap:2px}.twitch-name{color:var(--color-text-primary);font-weight:600}.twitch-status{color:var(--color-accent-success);font-size:var(--text-sm)}.twitch-disconnected{align-items:center;display:flex;gap:var(--space-md);justify-content:space-between}.twitch-disconnected h3{font-family:var(--font-display);font-size:1.1rem;margin:0 0 4px}.twitch-disconnected p{font-size:var(--text-sm);margin:0}.analytics-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(3,1fr);margin-bottom:var(--space-lg)}.analytics-card{align-items:center;display:flex;flex-direction:column;padding:var(--space-md);text-align:center}.analytics-card__value{color:var(--color-brand-primary);font-family:var(--font-display);font-size:2rem;font-weight:700}.analytics-card__label{color:var(--color-text-tertiary);font-size:var(--text-sm);margin-top:4px}.tip-feed{max-height:400px;overflow-y:auto}.tip-feed__item{border-bottom:1px solid var(--glass-border);padding:var(--space-sm) 0}.tip-feed__item:last-child{border-bottom:none}.tip-feed__amount{color:var(--color-accent-success);font-family:var(--font-mono);font-weight:600}.tip-feed__from{color:var(--color-text-secondary);font-size:var(--text-sm)}.tip-feed__message{color:var(--color-text-tertiary);font-size:var(--text-sm);font-style:italic;margin-top:2px}.tip-input{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.tip-input__quick-amounts{display:flex;gap:var(--space-sm)}.tip-input__quick-btn{background:hsla(0,0%,100%,.05);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex:1;font-family:var(--font-mono);font-weight:600;padding:var(--space-sm);transition:all var(--duration-fast) var(--ease-in-out)}.tip-input__quick-btn:hover{border-color:var(--color-brand-primary);color:var(--color-text-primary)}.tip-input__quick-btn.is-active{background:rgba(0,207,255,.1);border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.tip-input__row{display:flex;gap:var(--space-sm)}.tip-input__amount{background:rgba(18,24,33,.85);border:1px solid var(--color-dark-border);border-radius:var(--radius-md);color:var(--color-text-primary);flex:1;font-family:var(--font-mono);font-size:var(--text-base);padding:.75rem}.tip-input__amount:focus{border-color:var(--color-brand-primary);box-shadow:0 0 0 3px rgba(0,207,255,.2);outline:none}.tip-input__currency{cursor:pointer;font-family:var(--font-mono)}.tip-input__currency,.tip-input__message{background:rgba(18,24,33,.85);border:1px solid var(--color-dark-border);border-radius:var(--radius-md);color:var(--color-text-primary);padding:.75rem}.tip-input__message{font-family:var(--font-body);font-size:var(--text-sm)}.tip-input__message:focus{border-color:var(--color-brand-primary);box-shadow:0 0 0 3px rgba(0,207,255,.2);outline:none}.tip-input__send{width:100%}.viewer-view__prompt{padding:var(--space-xl) var(--space-lg);text-align:center}.viewer-view__prompt h1{font-family:var(--font-display);font-size:var(--text-display);margin-bottom:var(--space-sm)}.viewer-view__tip-section{margin-bottom:var(--space-lg)}.viewer-view__tip-section h2{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-md)}.viewer-view__reactions{margin-bottom:var(--space-lg)}.viewer-view__reactions h3{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-md)}.reaction-bar{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.reaction-btn{align-items:center;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space-md);transition:all var(--duration-fast) var(--ease-in-out)}.reaction-btn:hover:not(:disabled){border-color:var(--color-brand-primary);box-shadow:0 4px 12px rgba(0,207,255,.15);transform:translateY(-2px)}.reaction-btn:disabled{cursor:not-allowed;opacity:.5}.reaction-btn.is-sending{animation:pulse .5s ease-in-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.reaction-btn__emoji{font-size:1.5rem}.reaction-btn__amount{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:.75rem}.channels-page{margin:0 auto;max-width:1200px;padding:var(--space-lg)}.channels-page__prompt{padding:var(--space-xl) var(--space-lg);text-align:center}.channels-page__prompt h1{font-family:var(--font-display);font-size:var(--text-display);margin-bottom:var(--space-sm)}.channels-page__loading{align-items:center;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl)}.channels-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:var(--space-lg)}.channel-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--color-text-primary);display:block;padding:var(--space-md);text-decoration:none;transition:all var(--duration-fast) var(--ease-in-out)}.channel-card:hover{border-color:var(--color-brand-primary);box-shadow:0 4px 12px rgba(0,207,255,.15)}.channel-card__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.channel-card__status{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:.75rem}.channel-card__status.is-live{color:var(--color-accent-success)}.channel-card__viewers{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:.75rem}.channel-card h3{font-family:var(--font-display);font-size:1.1rem;margin:0 0 var(--space-sm)}.channel-card__wallet{font-size:.85rem;margin:0}@media (max-width:768px){.analytics-grid{grid-template-columns:1fr}.tip-input__quick-amounts{flex-wrap:wrap}.tip-input__quick-btn{flex:0 0 calc(50% - var(--space-sm)/2)}.tip-input__row{flex-direction:column}.reaction-bar{justify-content:center}.channels-grid{grid-template-columns:1fr}.streamer-view__tabs{flex-wrap:wrap}.channel-grid{grid-template-columns:1fr}.nft-minter__form{gap:var(--space-sm)}.x402-demo__flow{gap:var(--space-xs)}}.nft-minter{background:var(--color-surface);border-radius:12px;padding:var(--space-lg)}.nft-minter__title{font-family:var(--font-display);font-size:1.25rem;margin-bottom:var(--space-xs)}.nft-minter__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.nft-minter__form{display:flex;flex-direction:column;gap:var(--space-md)}.nft-minter__btn{margin-top:var(--space-md)}.x402-demo{background:var(--color-surface);border-radius:12px;padding:var(--space-lg)}.x402-demo__title{font-family:var(--font-display);font-size:1.25rem;margin-bottom:var(--space-xs)}.x402-demo__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.x402-demo__flow{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.x402-demo__step{align-items:center;background:var(--color-bg);border-radius:8px;display:flex;gap:var(--space-sm);padding:var(--space-sm)}.x402-demo__step-num{align-items:center;background:var(--color-accent);border-radius:50%;color:#fff;display:flex;font-size:.8rem;font-weight:600;height:24px;justify-content:center;width:24px}.x402-demo__btn{width:100%}.x402-demo__result{background:var(--color-bg);border-radius:8px;margin-top:var(--space-lg);padding:var(--space-md)}.x402-demo__result pre{font-family:var(--font-mono);font-size:.8rem;white-space:pre-wrap;word-break:break-all}.x402-demo__error{background:rgba(239,68,68,.1);border:1px solid var(--color-error);border-radius:8px;color:var(--color-error);margin-top:var(--space-md);padding:var(--space-sm)}.channel-discovery{margin:0 auto;max-width:1200px;padding:var(--space-xl) var(--space-lg)}.channel-discovery__header{margin-bottom:var(--space-xl);text-align:center}.channel-discovery__header h1{font-family:var(--font-display);font-size:2rem;margin-bottom:var(--space-sm)}.channel-discovery__header p{color:var(--color-text-secondary)}.channel-grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.channel-card{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;display:flex;gap:var(--space-md);padding:var(--space-lg);transition:all .2s}.channel-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px rgba(0,0,0,.2);transform:translateY(-2px)}.channel-card__avatar{align-items:center;background:var(--color-accent);border-radius:50%;color:#fff;display:flex;font-size:1.2rem;font-weight:700;height:48px;justify-content:center;width:48px}.channel-card__info{flex:1}.channel-card__name{font-weight:600;margin-bottom:var(--space-xs)}.channel-card__wallet{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:.8rem}.channel-card__meta{align-items:flex-end;display:flex;flex-direction:column;gap:var(--space-xs)}.badge{border-radius:999px;font-size:.7rem;font-weight:600;padding:2px 8px}.badge--live{background:rgba(239,68,68,.15);color:#ef4444}.badge--offline{background:rgba(100,116,139,.15);color:#94a3b8}.channel-card__viewers{color:var(--color-text-secondary);font-size:.8rem}.streamer-view__tabs{border-bottom:1px solid var(--color-border);display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm)}.tab{background:transparent;border:none;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-sm) var(--space-md);transition:all .2s}.tab:hover{background:var(--color-surface);color:var(--color-text-primary)}.tab--active,.tab--active:hover{background:var(--color-accent);color:#fff}