*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1a0f;--field: #1a2e1a;--field-line: rgba(255, 255, 255, .08);--card-bg: #1a2a1a;--card-border: #2a3d2a;--text: #ffffff;--text-secondary: #7a9a7a;--kalshi-green: #00D991;--kalshi-green-dim: rgba(0, 217, 145, .12);--yes-color: #00D991;--no-color: #ff4d6a;--gold: #d4af37}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;padding:24px 16px;max-width:380px;margin:0 auto;width:100%;min-height:100vh;min-height:100dvh;position:relative}.app:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 60px,var(--field-line) 60px,var(--field-line) 61px);pointer-events:none;opacity:.5}.main-content{flex:1;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}.header{text-align:center;margin-bottom:24px;animation:fadeIn .5s ease}.title{font-size:1.5rem;font-weight:800;letter-spacing:-.01em;color:var(--text);margin-bottom:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.kalshi-logo{height:24px;width:auto;display:block;margin:0 auto 8px}.subtitle{font-size:.75rem;color:var(--text-secondary);font-weight:500;letter-spacing:.1em}.prize-banner{background:linear-gradient(135deg,#d4af3733,#d4af370d);border:2px solid var(--gold);border-radius:4px;padding:20px 16px;text-align:center;margin-bottom:16px;animation:fadeIn .4s ease}.prize-badge{display:inline-block;background:var(--gold);color:#000;font-size:.65rem;font-weight:800;padding:4px 10px;border-radius:2px;letter-spacing:.1em;margin-bottom:8px}.prize-amount{font-size:1.8rem;font-weight:800;color:var(--gold);margin-bottom:4px;letter-spacing:-.02em}.prize-details{font-size:.8rem;color:var(--text-secondary);font-weight:500}.signup-container{width:100%;background:var(--field);border:1px solid var(--card-border);border-radius:4px;padding:20px}.signup-form{display:flex;flex-direction:column;gap:16px}.leaderboard-teaser{font-size:.85rem;color:var(--kalshi-green);font-weight:600;text-align:center;margin-bottom:4px;letter-spacing:.02em}.form-group{display:flex;flex-direction:column;gap:6px;animation:fadeIn .4s ease both}.form-group:nth-child(1){animation-delay:.05s}.form-group:nth-child(2){animation-delay:.1s}.form-group:nth-child(3){animation-delay:.15s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.form-label{font-size:.65rem;font-weight:700;color:var(--text-secondary);letter-spacing:.08em}.form-input{background:var(--bg);border:1px solid var(--card-border);border-radius:4px;padding:12px;font-size:1rem;color:var(--text);outline:none;transition:border-color .2s ease;font-family:inherit}.form-input::placeholder{color:var(--text-secondary);opacity:.5}.form-input:focus{border-color:var(--kalshi-green)}.submit-btn{background:var(--kalshi-green);border:none;border-radius:4px;padding:14px;font-size:.9rem;font-weight:700;color:#000;cursor:pointer;transition:opacity .15s ease;margin-top:4px;-webkit-tap-highlight-color:transparent;animation:fadeIn .4s ease .2s both;letter-spacing:.05em}.submit-btn:active{opacity:.85}.eligibility-notice{margin-top:4px;padding-top:16px;border-top:1px solid var(--card-border);text-align:center;animation:fadeIn .4s ease .25s both}.eligibility-notice p{font-size:.7rem;color:var(--text-secondary);margin-bottom:12px;letter-spacing:.02em}.eligibility-notice a{display:block;background:transparent;border:1px solid var(--kalshi-green);color:var(--kalshi-green);text-decoration:none;font-weight:700;padding:12px;border-radius:4px;font-size:.85rem;letter-spacing:.05em;transition:background .15s ease,color .15s ease}.eligibility-notice a:hover,.eligibility-notice a:active{background:var(--kalshi-green);color:#000}.registration-closed{text-align:center;padding:20px 0;animation:fadeIn .4s ease both}.registration-closed p{font-size:1rem;color:var(--text);margin-bottom:8px}.registration-closed p:first-child{font-weight:700;font-size:1.1rem}.registration-closed a{display:inline-block;margin-top:16px;background:var(--kalshi-green);color:#000;text-decoration:none;font-weight:700;padding:14px 24px;border-radius:4px;font-size:.9rem;letter-spacing:.05em;transition:opacity .15s ease}.registration-closed a:hover,.registration-closed a:active{opacity:.85}.bingo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:var(--field);border:1px solid var(--card-border);border-radius:4px;padding:8px}.bingo-cell{aspect-ratio:1;background:var(--card-bg);border:1px solid var(--card-border);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;cursor:pointer;text-align:center;font-size:.62rem;font-weight:600;line-height:1.2;color:var(--text);transition:transform .1s ease,background .15s ease,border-color .15s ease;-webkit-tap-highlight-color:transparent;animation:fadeIn .3s ease both;letter-spacing:.02em}.bingo-cell:nth-child(1){animation-delay:.01s}.bingo-cell:nth-child(2){animation-delay:.02s}.bingo-cell:nth-child(3){animation-delay:.03s}.bingo-cell:nth-child(4){animation-delay:.04s}.bingo-cell:nth-child(5){animation-delay:.05s}.bingo-cell:nth-child(6){animation-delay:.06s}.bingo-cell:nth-child(7){animation-delay:.07s}.bingo-cell:nth-child(8){animation-delay:.08s}.bingo-cell:nth-child(9){animation-delay:.09s}.bingo-cell:nth-child(10){animation-delay:.1s}.bingo-cell:nth-child(11){animation-delay:.11s}.bingo-cell:nth-child(12){animation-delay:.12s}.bingo-cell:nth-child(13){animation-delay:.13s}.bingo-cell:nth-child(14){animation-delay:.14s}.bingo-cell:nth-child(15){animation-delay:.15s}.bingo-cell:nth-child(16){animation-delay:.16s}.bingo-cell:active{transform:scale(.96)}.bingo-cell.picked-yes{background:var(--kalshi-green-dim);border-color:var(--kalshi-green);color:var(--kalshi-green)}.bingo-cell.picked-no{background:#ff4d6a1a;border-color:var(--no-color);color:var(--no-color)}.bingo-grid.locked .bingo-cell.picked-yes,.bingo-grid.locked .bingo-cell.picked-no{border-width:3px}.bingo-cell.missed-resolved-yes{background:var(--kalshi-green);border-color:var(--card-border);border-width:3px;color:#000;opacity:.6}.bingo-cell.missed-resolved-no{background:var(--no-color);border-color:var(--card-border);border-width:3px;color:#fff;opacity:.6}.bingo-cell.picked-yes-resolved-yes{background:var(--kalshi-green);border-color:var(--kalshi-green);border-width:3px;color:#000}.bingo-cell.picked-yes-resolved-no{background:var(--no-color);border-color:var(--kalshi-green);border-width:3px;color:#fff}.bingo-cell.picked-no-resolved-yes{background:var(--kalshi-green);border-color:var(--no-color);border-width:3px;color:#000}.bingo-cell.picked-no-resolved-no{background:var(--no-color);border-color:var(--no-color);border-width:3px;color:#fff}.result-icon{width:16px;height:16px;flex-shrink:0}.lock-btn{margin-top:16px;padding:14px 20px;border:none;border-radius:4px;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .15s ease;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--card-border);color:var(--text-secondary);animation:fadeIn .3s ease .2s both;letter-spacing:.05em}.lock-btn:disabled{cursor:default}.lock-btn.ready{background:var(--gold);color:#000}.lock-btn.ready:active{opacity:.85}.lock-btn.just-locked{background:var(--gold);color:#000;cursor:default;animation:lockedPop .3s ease-out}.lock-btn.live{background:#dc262626;color:#ef4444;cursor:default;border:1px solid rgba(220,38,38,.3);animation:fadeToLive .5s ease-out}@keyframes lockedPop{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes fadeToLive{0%{background:var(--gold);color:#000;border-color:transparent}to{background:#dc262626;color:#ef4444;border-color:#dc26264d}}.live-indicator{display:flex;align-items:center;gap:6px;font-weight:700;letter-spacing:.1em}.live-dot{width:8px;height:8px;background:#ef4444;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #ef4444b3}50%{opacity:.8;transform:scale(1.1);box-shadow:0 0 0 4px #ef444400}}.lock-icon{width:16px;height:16px}.share-cta{margin-top:16px;padding:16px;background:var(--field);border:1px solid var(--card-border);border-radius:4px;text-align:center;animation:fadeIn .3s ease}.share-cta p{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px;font-weight:500}.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--kalshi-green);border:none;border-radius:4px;padding:12px 20px;font-size:.85rem;font-weight:700;color:#000;cursor:pointer;transition:opacity .15s ease;-webkit-tap-highlight-color:transparent;letter-spacing:.03em}.share-btn:active{opacity:.85}.share-icon{width:18px;height:18px}.modal-overlay{position:fixed;inset:0;background:#0f1a0fe6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;animation:fadeIn .15s ease}.modal{background:var(--field);border:1px solid var(--card-border);border-radius:4px;padding:24px 20px;width:100%;max-width:300px;position:relative;animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:none;background:transparent;color:var(--text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.modal-close:hover{background:#ffffff1a}.modal-close:active{color:var(--text)}.modal-title{font-size:1.2rem;font-weight:700;text-align:left;margin:0 0 8px;line-height:1.3;padding:0;color:var(--text)}.modal-question{font-size:.95rem;font-weight:500;text-align:left;margin:0 0 20px;line-height:1.5;padding:0;color:var(--text-secondary)}.modal-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-btn{padding:14px;border:none;border-radius:4px;font-size:.9rem;font-weight:700;cursor:pointer;transition:opacity .15s ease;-webkit-tap-highlight-color:transparent;letter-spacing:.03em}.modal-btn:active{opacity:.85}.modal-btn.yes{background:var(--kalshi-green);color:#000}.modal-btn.no{background:var(--no-color);color:#fff}.modal-resolution{text-align:center;padding:14px;border-radius:4px;font-size:.9rem;font-weight:700;letter-spacing:.03em}.modal-resolution.yes{background:var(--kalshi-green);color:#000}.modal-resolution.no{background:var(--no-color);color:#fff}.modal-prediction{text-align:center;padding:14px;border-radius:4px;font-size:.9rem;font-weight:600;letter-spacing:.03em;border:2px solid}.modal-prediction.yes{border-color:var(--kalshi-green);color:var(--kalshi-green)}.modal-prediction.no{border-color:var(--no-color);color:var(--no-color)}.footer{padding-top:32px;text-align:center;animation:fadeIn .5s ease .3s both;position:relative;z-index:1}.copyright{font-size:.7rem;color:var(--text-secondary);margin-bottom:10px;font-weight:500}.disclaimer{font-size:.6rem;color:var(--text-secondary);line-height:1.5;opacity:.5}.leaderboard-toggle{margin-bottom:16px;padding:10px 16px;border:1px solid var(--kalshi-green);border-radius:4px;background:transparent;color:var(--kalshi-green);font-size:.75rem;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent;letter-spacing:.05em}.leaderboard-toggle:active{background:var(--kalshi-green);color:#000}.leaderboard{background:var(--field);border:1px solid var(--card-border);border-radius:4px;padding:16px;margin-top:16px;animation:fadeIn .2s ease}.leaderboard-title{font-size:.9rem;font-weight:700;text-align:center;margin-bottom:12px;color:var(--text);letter-spacing:.02em}.leaderboard-empty{text-align:center;color:var(--text-secondary);font-size:.8rem;padding:12px 0}.leaderboard-list{display:flex;flex-direction:column;gap:6px}.leaderboard-entry{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:4px;font-size:.8rem}.leaderboard-entry.you{border-color:var(--kalshi-green);background:var(--kalshi-green-dim)}.leaderboard-rank{font-weight:800;color:var(--text-secondary);min-width:20px}.leaderboard-entry.you .leaderboard-rank{color:var(--kalshi-green)}.leaderboard-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-weight:800;color:var(--kalshi-green);min-width:24px;text-align:right}.leaderboard-divider{text-align:center;color:var(--text-secondary);font-size:.75rem;padding:4px 0}.game-over{background:var(--field);border:2px solid var(--kalshi-green);border-radius:4px;padding:24px 16px;text-align:center;animation:fadeIn .3s ease}.game-over-title{font-size:1.4rem;font-weight:800;color:var(--kalshi-green);margin-bottom:16px;letter-spacing:.02em}.game-over-score{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-bottom:12px}.game-over-correct{font-size:3.5rem;font-weight:800;color:var(--kalshi-green);line-height:1}.game-over-total{font-size:1.1rem;color:var(--text-secondary);font-weight:600}.game-over-rank{font-size:.95rem;color:var(--text)}.winners{background:var(--field);border:1px solid var(--gold);border-radius:4px;padding:20px 16px;margin-top:16px;animation:fadeIn .3s ease .1s both}.winners-title{font-size:1rem;font-weight:700;text-align:center;margin-bottom:16px;color:var(--gold);letter-spacing:.05em}.winners-list{display:flex;flex-direction:column;gap:8px}.winner-entry{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card-bg);border-radius:4px;font-size:.9rem}.winner-entry.place-1{background:#d4af3726;border:2px solid var(--gold)}.winner-entry.place-2{background:#c0c0c01a;border:1px solid #c0c0c0}.winner-entry.place-3{background:#cd7f321a;border:1px solid #cd7f32}.winner-entry.you{box-shadow:0 0 0 2px var(--kalshi-green)}.winner-place{font-weight:800;min-width:32px}.winner-entry.place-1 .winner-place{color:var(--gold)}.winner-entry.place-2 .winner-place{color:silver}.winner-entry.place-3 .winner-place{color:#cd7f32}.winner-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.winner-score{font-weight:800;color:var(--kalshi-green);font-size:1.1rem}.final-leaderboard{background:var(--field);border:1px solid var(--card-border);border-radius:4px;padding:16px;margin-top:16px;animation:fadeIn .3s ease .2s both}.final-leaderboard-title{font-size:.85rem;font-weight:700;text-align:center;margin-bottom:12px;color:var(--text-secondary);letter-spacing:.05em}.game-over-cta{margin-top:20px;padding:20px;background:var(--field);border:1px solid var(--card-border);border-radius:4px;text-align:center;animation:fadeIn .3s ease .3s both}.game-over-cta p{font-size:.85rem;color:var(--text-secondary);margin-bottom:14px;letter-spacing:.02em}.game-over-cta a{display:block;background:var(--kalshi-green);color:#000;text-decoration:none;font-weight:700;padding:14px;border-radius:4px;font-size:.9rem;letter-spacing:.05em;transition:opacity .15s ease}.game-over-cta a:active{opacity:.85}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px}.loading-spinner{width:32px;height:32px;border:3px solid var(--card-border);border-top-color:var(--kalshi-green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
