:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app){--ch-primary: var(--color-primary, #f97316);--ch-primary-glow: rgb(249 115 22 / .15);--ch-surface: var(--color-surface, #1a1a1a);--ch-surface-alt: var(--color-surface-alt, #202020);--ch-text: var(--color-text, #f3f4f6);--ch-text-muted: var(--color-text-muted, #9ca3af);--ch-border: var(--color-border, #333333);--ch-success: #22c55e;--ch-warning: #f59e0b;--ch-danger: #ef4444;--tier-bronze: #92400e;--tier-silver: #64748b;--tier-gold: #d97706;--tier-platinum: #0891b2;--tier-diamond: #7c3aed;background:transparent;color:var(--ch-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-card{background:var(--ch-surface-alt);border:1px solid var(--ch-border);border-radius:.75rem;padding:1.25rem;transition:box-shadow .2s ease,border-color .2s ease}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-card:hover{box-shadow:0 0 0 1px var(--ch-primary),0 4px 24px var(--ch-primary-glow);border-color:var(--ch-primary)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-card--flat{background:var(--ch-surface-alt);border:1px solid var(--ch-border);border-radius:.75rem;padding:1.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,var(--ch-primary),#ea580c);color:#fff;font-weight:600;font-size:.875rem;letter-spacing:.025em;border:none;border-radius:.5rem;cursor:pointer;text-decoration:none;transition:opacity .15s ease,transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 16px var(--ch-primary-glow)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-primary:active:not(:disabled){transform:translateY(0);opacity:1}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-primary:disabled{opacity:.5;cursor:not-allowed}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;background:transparent;color:var(--ch-text);font-weight:600;font-size:.875rem;border:1px solid var(--ch-border);border-radius:.5rem;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease;-webkit-user-select:none;user-select:none}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-secondary:hover:not(:disabled){background:var(--ch-primary-glow);border-color:var(--ch-primary)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:#ef444426;color:var(--ch-danger);font-weight:600;font-size:.875rem;border:1px solid rgb(239 68 68 / .3);border-radius:.5rem;cursor:pointer;transition:background .15s ease}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-btn-danger:hover{background:#ef444440}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge--active{background:#16a34a26;color:#4ade80;border:1px solid rgba(22,163,74,.4)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge--closed{background:#6464641f;color:#ffffff59;border:1px solid rgba(255,255,255,.1)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge--pending{background:#f59e0b26;color:var(--ch-warning);border:1px solid rgb(245 158 11 / .3)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge--soon{background:#6366f126;color:var(--ch-primary);border:1px solid rgb(99 102 241 / .3)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge-tier-bronze{background:#92400e33;color:#d97706;border:1px solid rgb(146 64 14 / .4);padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge-tier-silver{background:#64748b33;color:#94a3b8;border:1px solid rgb(100 116 139 / .4);padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge-tier-gold{background:#d9770633;color:#fbbf24;border:1px solid rgb(217 119 6 / .4);padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge-tier-platinum{background:#0891b233;color:#22d3ee;border:1px solid rgb(8 145 178 / .4);padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-badge-tier-diamond{background:#7c3aed33;color:#a78bfa;border:1px solid rgb(124 58 237 / .4);padding:.2rem .6rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring svg{transform:rotate(-90deg)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring__tier-emoji{font-size:1.5rem;line-height:1}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring__label{font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ch-text-muted);margin-top:.125rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-ring__xp{font-size:.75rem;font-weight:700;color:var(--ch-text)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .leaderboard-row{display:grid;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--ch-border);transition:background .15s ease}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .leaderboard-row:hover{background:#ffffff08}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .leaderboard-row--self{background:var(--ch-primary-glow);border:1px solid rgb(99 102 241 / .3);border-radius:.5rem;position:sticky;bottom:0}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .leaderboard-row--self:hover{background:#6366f14d}@keyframes rankPulseUp{0%{background:transparent}20%{background:#22c55e4d}to{background:transparent}}@keyframes rankPulseDown{0%{background:transparent}20%{background:#ef44444d}to{background:transparent}}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .rank-pulse--up{animation:rankPulseUp 1.5s ease-out}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .rank-pulse--down{animation:rankPulseDown 1.5s ease-out}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .rank-change--up{color:var(--ch-success);font-size:.7rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .rank-change--down{color:var(--ch-danger);font-size:.7rem}@keyframes streakGlow{0%,to{filter:drop-shadow(0 0 4px #f97316) drop-shadow(0 0 8px #f97316)}50%{filter:drop-shadow(0 0 8px #f97316) drop-shadow(0 0 20px #fb923c)}}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .streak-fire{animation:streakGlow 2s ease-in-out infinite;display:inline-block}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .skeleton{background:linear-gradient(90deg,var(--ch-surface-alt) 25%,rgb(255 255 255 / .06) 50%,var(--ch-surface-alt) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite linear;border-radius:.375rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .skeleton--text{height:1rem;border-radius:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .skeleton--title{height:1.5rem;border-radius:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .skeleton--avatar{border-radius:50%}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .skeleton--card{border-radius:.75rem;min-height:200px}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tabs{display:flex;gap:.125rem;border-bottom:1px solid var(--ch-border);padding-bottom:0}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tab{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--ch-text-muted);border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease;white-space:nowrap}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tab:hover{color:var(--ch-text)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tab--active{color:var(--ch-primary);border-bottom-color:var(--ch-primary)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-input{width:100%;padding:.625rem .875rem;background:var(--ch-surface);border:1px solid var(--ch-border);border-radius:.5rem;color:var(--ch-text);font-size:.875rem;transition:border-color .15s ease,box-shadow .15s ease;outline:none}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-input:focus{border-color:var(--ch-primary);box-shadow:0 0 0 3px var(--ch-primary-glow)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-input::placeholder{color:var(--ch-text-muted)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-textarea{width:100%;padding:.625rem .875rem;background:var(--ch-surface);border:1px solid var(--ch-border);border-radius:.5rem;color:var(--ch-text);font-size:.875rem;resize:vertical;min-height:6rem;transition:border-color .15s ease,box-shadow .15s ease;outline:none;font-family:inherit}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-textarea:focus{border-color:var(--ch-primary);box-shadow:0 0 0 3px var(--ch-primary-glow)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-select{width:100%;padding:.625rem 2.5rem .625rem .875rem;background:var(--ch-surface);border:1px solid var(--ch-border);border-radius:.5rem;color:var(--ch-text);font-size:.875rem;cursor:pointer;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-select:focus{border-color:var(--ch-primary);box-shadow:0 0 0 3px var(--ch-primary-glow)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-label{display:block;font-size:.8rem;font-weight:600;color:var(--ch-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-field{margin-bottom:1.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-bar{height:6px;background:var(--ch-surface);border-radius:9999px;overflow:hidden;border:1px solid var(--ch-border)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-xp-bar__fill{height:100%;background:linear-gradient(90deg,var(--ch-primary),#ea580c);border-radius:9999px;transition:width .6s cubic-bezier(.4,0,.2,1)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-avatar{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,var(--ch-primary),#8b5cf6);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-avatar img{width:100%;height:100%;object-fit:cover}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-modal-backdrop{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-modal{background:var(--ch-surface-alt);border:1px solid var(--ch-border);border-radius:1rem;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:1.5rem;position:relative}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-modal--lg{max-width:800px}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-modal--xl{max-width:1100px}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline{position:relative;padding-left:2rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline:before{content:"";position:absolute;left:.6rem;top:0;bottom:0;width:2px;background:var(--ch-border)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline__item{position:relative;margin-bottom:1.5rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline__dot{position:absolute;left:-1.65rem;top:.25rem;width:1rem;height:1rem;border-radius:50%;background:var(--ch-primary);border:2px solid var(--ch-surface-alt);flex-shrink:0}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline__dot--locked{background:var(--ch-surface);border-color:var(--ch-border)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-timeline__dot--complete{background:var(--ch-success)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-announcement{background:#f59e0b1a;border:1px solid rgb(245 158 11 / .3);border-radius:.75rem;padding:1rem 1.25rem;display:flex;align-items:flex-start;gap:.75rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-announcement--pinned{background:#f59e0b26;border-color:#f59e0b80;border-left:3px solid var(--ch-warning)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper{display:flex;align-items:center;gap:0}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:50%;width:100%;height:2px;background:var(--ch-border)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__step--done:after{background:var(--ch-primary)!important}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__circle{width:2rem;height:2rem;border-radius:50%;border:2px solid var(--ch-border);background:var(--ch-surface);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--ch-text-muted);position:relative;z-index:1;transition:all .2s ease}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__circle--active{border-color:var(--ch-primary);background:var(--ch-primary);color:#fff;box-shadow:0 0 0 4px var(--ch-primary-glow)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__circle--done{border-color:var(--ch-success);background:var(--ch-success);color:#fff}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-stepper__label{font-size:.7rem;color:var(--ch-text-muted);margin-top:.375rem;text-align:center;white-space:nowrap}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-drag-handle{cursor:grab;color:var(--ch-text-muted);padding:.25rem;border-radius:.25rem;transition:color .15s}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-drag-handle:hover{color:var(--ch-text)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-drag-handle:active{cursor:grabbing}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tooltip{position:relative;display:inline-flex}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-tooltip__content{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);background:#0f0f1a;border:1px solid var(--ch-border);color:var(--ch-text);font-size:.75rem;padding:.375rem .625rem;border-radius:.375rem;white-space:nowrap;pointer-events:none;z-index:100;box-shadow:0 4px 12px #0006}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-copy-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--ch-surface);border:1px solid var(--ch-border);border-radius:.375rem;color:var(--ch-text-muted);font-size:.8rem;cursor:pointer;transition:all .15s ease}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-copy-btn:hover{border-color:var(--ch-primary);color:var(--ch-primary)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-copy-btn--copied{border-color:var(--ch-success);color:var(--ch-success)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) ::-webkit-scrollbar{width:6px;height:6px}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) ::-webkit-scrollbar-track{background:var(--ch-surface)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) ::-webkit-scrollbar-thumb{background:var(--ch-border);border-radius:3px}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) ::-webkit-scrollbar-thumb:hover{background:var(--ch-text-muted)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-divider{height:1px;background:var(--ch-border);margin:1rem 0}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-empty{text-align:center;padding:3rem 1rem;color:var(--ch-text-muted)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-empty__icon{font-size:2.5rem;margin-bottom:.75rem;display:block}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-empty__text{font-size:.9rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-error-msg{color:var(--ch-danger);font-size:.8rem;margin-top:.25rem}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-field-hint{color:var(--ch-text-muted);font-size:.775rem;margin-top:.25rem;line-height:1.4}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.4}}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-live-dot{width:.5rem;height:.5rem;background:var(--ch-success);border-radius:50%;display:inline-block;animation:livePulse 1.5s ease-in-out infinite}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-dropzone{border:2px dashed var(--ch-border);border-radius:.75rem;padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease;color:var(--ch-text-muted)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-dropzone:hover,:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-dropzone--over{border-color:var(--ch-primary);background:var(--ch-primary-glow);color:var(--ch-text)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-progress{height:4px;background:var(--ch-surface);border-radius:9999px;overflow:hidden}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-progress__bar{height:100%;background:linear-gradient(90deg,var(--ch-primary),#ea580c);border-radius:9999px;transition:width .4s ease}@keyframes xpFloatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2rem)}}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .xp-delta{animation:xpFloatUp 1.5s ease-out forwards;position:absolute;font-weight:700;font-size:.9rem;pointer-events:none;z-index:10}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .xp-delta--positive{color:var(--ch-success)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .xp-delta--negative{color:var(--ch-danger)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-table{width:100%;border-collapse:collapse}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-table th{text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ch-text-muted);padding:.75rem 1rem;border-bottom:1px solid var(--ch-border)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-table td{padding:.75rem 1rem;font-size:.875rem;border-bottom:1px solid var(--ch-border);color:var(--ch-text)}:is(#challenge-app,#challenge-browse-app,#challenge-browse-fr-app,#challenge-join-app) .ch-table tr:hover td{background:#ffffff05}#challenge-join-app,#challenge-browse-app{--ch-primary: var(--color-primary, #f97316);--ch-primary-glow: rgb(249 115 22 / .15);--ch-surface: var(--color-surface, #1a1a1a);--ch-surface-alt: var(--color-surface-alt, #202020);--ch-text: var(--color-text, #f3f4f6);--ch-text-muted: var(--color-text-muted, #9ca3af);--ch-border: var(--color-border, #333333);--ch-success: #22c55e;--ch-warning: #f59e0b;--ch-danger: #ef4444;background:transparent;color:var(--ch-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}
