@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700;900&family=JetBrains+Mono:wght@400;700&display=swap";:root{--bg:#0a0a12;--bg-card:#12121e;--bg-card-hover:#1a1a28;--gold:#d4af37;--gold-dim:#9a7f28;--violet:#7b2fbe;--violet-light:#9b4fde;--text:#e8e8f0;--text-dim:#889;--danger:#e05555;--success:#55c577;--border:#d4af3733;--radius:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);min-height:100vh;font-family:JetBrains Mono,monospace;font-size:14px}h1,h2,h3{letter-spacing:.05em;font-family:Cinzel,serif}.navbar{z-index:100;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a12f2;justify-content:space-between;align-items:center;padding:.75rem 2rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--gold);letter-spacing:.1em;font-family:Cinzel,serif;font-size:1.25rem;font-weight:900;text-decoration:none}.navbar-actions{align-items:center;gap:.75rem;display:flex}.ws-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ws-dot--connected{background:var(--success)}.ws-dot--connecting{background:var(--gold);animation:1s infinite pulse}.ws-dot--disconnected{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.btn{border-radius:var(--radius);letter-spacing:.05em;cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.5rem 1.25rem;font-family:Cinzel,serif;font-size:.8rem;font-weight:700;transition:opacity .15s,transform .1s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn:not(:disabled):hover{opacity:.88;transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold-dim));color:#0a0a12}.btn-secondary{border:1px solid var(--border);color:var(--text-dim);background:0 0}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.btn-lg{padding:.75rem 2rem;font-size:.9rem}.btn-sm{padding:.3rem .75rem;font-size:.75rem}.input{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:#ffffff0a;outline:none;width:100%;padding:.5rem .75rem;font-family:JetBrains Mono,monospace;font-size:.9rem;transition:border-color .15s}.input:focus{border-color:var(--gold)}.input:disabled{opacity:.4;cursor:not-allowed}.input[type=number]{appearance:textfield}.hero-section{text-align:center;border-bottom:1px solid var(--border);background:radial-gradient(at 50% 0,#7b2fbe1f 0%,#0000 70%);padding:3rem 2rem 2rem}.hero-inner{max-width:640px;margin:0 auto}.hero-title{color:var(--gold);text-shadow:0 0 40px #d4af3766;letter-spacing:.2em;margin-bottom:1rem;font-size:3rem;font-weight:900}.hero-pool{color:var(--text);margin-bottom:.5rem;font-family:JetBrains Mono,monospace;font-size:2.5rem;font-weight:700}.hero-meta{color:var(--gold-dim);margin-bottom:.5rem;font-size:1rem}.hero-tickets{color:var(--text-dim);margin-bottom:1.5rem;font-size:.85rem}.hero-no-round{color:var(--text-dim);padding:2rem 0;font-size:1.1rem}.buy-form{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.buy-form--compact{justify-content:flex-start;margin-top:.75rem}.buy-label{color:var(--text-dim);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.count-input{text-align:center;width:72px}.count-input--sm{width:60px}.buy-cost{color:var(--gold);white-space:nowrap;font-size:.85rem}.connect-hint{color:var(--text-dim);margin-top:.5rem;font-size:.8rem}.recent-winners{text-align:left;max-width:640px;margin:2rem auto 0}.section-title{color:var(--gold);margin-bottom:1.5rem;font-size:1.6rem}.section-subtitle{color:var(--gold-dim);margin-top:2rem;margin-bottom:1rem;font-size:1.1rem}.winners-list{border:1px solid var(--border);border-radius:var(--radius);list-style:none;overflow:hidden}.winner-row{border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:.6rem 1rem;font-size:.85rem;display:flex}.winner-row:last-child{border-bottom:none}.winner-round{color:var(--text-dim);min-width:80px}.winner-address{color:var(--violet-light);font-family:JetBrains Mono,monospace}.winner-pool{color:var(--gold);margin-left:auto}.winner-none{color:var(--text-dim);font-style:italic}.raffle-section{max-width:1100px;margin:0 auto;padding:3rem 2rem}.raffle-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.raffle-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s,background .2s}.raffle-card:hover{border-color:var(--gold-dim);background:var(--bg-card-hover)}.raffle-card--drawn{opacity:.6;filter:grayscale(.4)}.raffle-card--drawn:hover{border-color:var(--border);background:var(--bg-card)}.raffle-title{color:var(--gold);margin-bottom:.75rem;font-size:1rem}.raffle-field{justify-content:space-between;margin-bottom:.3rem;font-size:.82rem;display:flex}.raffle-label{color:var(--text-dim)}.raffle-value{color:var(--text);font-weight:600}.raffle-drawn-badge{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;background:#ffffff14;border-radius:4px;margin:.5rem 0;padding:.2rem .6rem;font-size:.75rem;display:inline-block}.raffle-winner{color:var(--text-dim);font-size:.8rem}.empty-state{color:var(--text-dim);padding:2rem 0;font-size:.95rem}.create-raffle-section{border-top:1px solid var(--border);max-width:560px;margin:0 auto;padding:3rem 2rem 4rem}.create-raffle-hint{margin-bottom:1rem}.create-raffle-form{flex-direction:column;gap:1rem;display:flex}.create-raffle-form--disabled{opacity:.5;pointer-events:none}.form-field{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-dim);font-size:.82rem}.field-hint{color:var(--text-dim);font-size:.75rem}.bond-display{border:1px solid var(--border);border-radius:var(--radius);background:#d4af370f;flex-flow:wrap;align-items:center;gap:.75rem;padding:.75rem}.bond-label{color:var(--text-dim);font-size:.82rem}.bond-value{color:var(--gold);font-size:.9rem;font-weight:700}.bond-note{color:var(--text-dim);flex-basis:100%;font-size:.75rem}.wallet-connected{align-items:center;gap:.5rem;display:flex}.wallet-address{color:var(--violet-light);font-family:JetBrains Mono,monospace;font-size:.8rem}.copy-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:.2rem;transition:color .15s;display:flex}.copy-btn:hover{color:var(--gold)}.modal-backdrop{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-width:320px;max-width:480px;max-height:80vh;padding:2rem;position:relative;overflow-y:auto}.modal-title{color:var(--gold);margin-bottom:1.25rem;font-size:1.25rem}.modal-loading{color:var(--text-dim);font-size:.9rem}.modal-error{color:var(--danger);margin-bottom:.5rem;font-size:.85rem}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.modal-close:hover{color:var(--text)}.wallet-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.wallet-list-empty{color:var(--text-dim);font-size:.85rem}.wallet-list-item{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:100%;color:var(--text);background:#ffffff0a;justify-content:space-between;align-items:center;padding:.65rem .9rem;transition:border-color .15s,background .15s;display:flex}.wallet-list-item:hover{border-color:var(--gold-dim);background:#ffffff12}.wallet-nickname{font-size:.9rem}.wallet-addr-small{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:.75rem}.wallet-unlock{flex-direction:column;gap:.75rem;display:flex}.wallet-selected-label{color:var(--text-dim);font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.25rem;display:flex}.tx-error{color:var(--danger);margin-top:.5rem;font-size:.8rem}.tx-success{color:var(--success);margin-top:.5rem;font-size:.8rem}#root{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1}
