:root{--bg:#110926;--card:#ffffff0a;--border:#ffffff14;--text:#f5f1ff;--muted:#a699c8;--gold:#ffc83d;--violet:#7c5cff;--pink:#ff5c8a;--danger:#ff6b6b;--radius:24px;--shadow:0 32px 72px #0009}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--bg);min-height:100dvh;color:var(--text);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:flex-start;padding:16px;font-family:Outfit,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;position:relative;overflow-x:hidden}body:before,body:after{content:"";filter:blur(120px);z-index:-1;opacity:.45;border-radius:50%;width:800px;height:800px;animation:20s ease-in-out infinite alternate float;position:fixed}body:before{background:radial-gradient(circle, var(--violet) 0%, transparent 70%);top:-20%;right:-10%}body:after{background:radial-gradient(circle, var(--pink) 0%, transparent 70%);animation-delay:-10s;bottom:-20%;left:-10%}@keyframes float{0%{transform:translate(0)scale(1)}50%{transform:translate(-50px,30px)scale(1.1)}to{transform:translate(20px,-50px)scale(.9)}}main{z-index:1;width:100%;max-width:480px;margin-top:4dvh;margin-bottom:4dvh;position:relative}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow), inset 0 1px 1px #ffffff26;-webkit-backdrop-filter:blur(20px);padding:32px 24px}header{text-align:center;margin-bottom:32px}header h1{letter-spacing:.02em;background:linear-gradient(90deg, var(--gold), var(--pink), var(--violet));color:#0000;background-clip:text;margin:0;font-size:1.7rem;line-height:1.2}header p{color:var(--muted);margin:10px 0 0;font-size:.9rem}.avatar{background:conic-gradient(from 210deg, var(--violet), var(--pink), var(--gold), var(--violet));border-radius:50%;width:300px;height:300px;margin:0 auto 24px;padding:5px;box-shadow:0 14px 40px #7c5cff59}.avatar img{object-fit:cover;background:var(--bg);border-radius:50%;width:100%;height:100%;display:block}.steps{justify-content:space-between;gap:6px;margin:0 0 32px;padding:0;list-style:none;display:flex}.steps li{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:1;align-items:center;gap:8px;font-size:.72rem;font-weight:600;display:flex}.steps li:before{content:attr(data-n);border:2px solid var(--border);width:26px;height:26px;color:var(--muted);background:0 0;border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:grid}.steps li.active{color:var(--text)}.steps li.active:before{border-color:var(--gold);background:var(--gold);color:#2a2003}.steps li.done:before{border-color:var(--violet);background:var(--violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;color:#0000;content:"";background-size:14px}.step h2{margin:0 0 10px;font-size:1.15rem;line-height:1.35}.hint{color:var(--muted);margin:10px 0 0;font-size:.85rem}label{color:var(--muted);margin:22px 0 8px;font-size:.85rem;display:block}input[type=number]{text-align:center;width:100%;height:56px;color:var(--text);border:1.5px solid var(--border);-moz-appearance:textfield;background:#00000047;border-radius:14px;outline:none;font-size:1.35rem;font-weight:700;transition:border-color .3s,box-shadow .3s,transform .3s}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]:focus{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 0 0 4px #ffc83d26}.error{color:var(--danger);margin-top:10px;font-size:.85rem;display:none}.error.show{display:block}.actions{gap:12px;margin-top:30px;display:flex}.actions button{flex:1;margin-top:0}button{cursor:pointer;border:none;border-radius:14px;height:52px;font-size:1rem;font-weight:700;transition:all .25s cubic-bezier(.2,.8,.2,1)}button:active{transform:scale(.96)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-primary{background:linear-gradient(90deg, var(--gold), #ff9f1c);color:#2a2003;width:100%;margin-top:28px;box-shadow:0 10px 24px #ffc83d40}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 14px 32px #ffc83d66}.btn-ghost{color:var(--text);border:1px solid var(--border);background:#ffffff14}.btn-ghost:hover:not(:disabled){background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.btn-sm{height:38px;padding:0 14px;font-size:.85rem}.btn-reset{background:linear-gradient(90deg, var(--violet), var(--pink));color:#fff;width:100%;margin-top:28px;box-shadow:0 10px 24px #7c5cff4d}.hidden{display:none!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.step:not(.hidden),#sorteo:not(.hidden),#fase-agua:not(.hidden),#fase-premios:not(.hidden),#final:not(.hidden){animation:.5s cubic-bezier(.2,.8,.2,1) forwards fadeInUp}.sorteo-bar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.sorteo-bar button{width:auto;margin:0}.sorteo-title{margin:0;font-size:1.25rem}.roll-wrap{text-align:center;padding:16px 0}.roll-label{color:var(--muted);min-height:1.4em;margin-bottom:16px;font-size:.95rem}.drum{background:radial-gradient(circle at 35% 30%, #ffffff2e, transparent 55%), conic-gradient(from 210deg, var(--violet), var(--pink), var(--gold), var(--violet));color:#fff;text-shadow:0 4px 14px #00000080;border-radius:50%;place-items:center;width:172px;height:172px;margin:0 auto;font-size:3.4rem;font-weight:800;display:grid;box-shadow:0 0 0 10px #ffffff0f,0 0 60px #7c5cff66,inset 0 -12px 30px #00000059}.drum.rolling{animation:.5s ease-in-out infinite pulse}.drum.win{background:radial-gradient(circle at 35% 30%, #ffffff40, transparent 55%), linear-gradient(145deg, var(--gold), #ff9f1c);color:#2a2003;animation:.7s cubic-bezier(.2,1.6,.4,1) forwards winPop;box-shadow:0 0 0 15px #ffc83d33,0 0 100px #ffc83dcc,inset 0 -12px 30px #0000004d}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pop{0%{transform:scale(.4)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes winPop{0%{transform:scale(.4);box-shadow:0 0 #ffc83d00}50%{box-shadow:0 0 0 25px #ffc83d4d,0 0 120px #ffc83de6}60%{transform:scale(1.15)}to{transform:scale(1)}}.chips{flex-wrap:wrap;justify-content:center;gap:16px;min-height:48px;margin-top:48px;display:flex}.chips span{color:var(--text);letter-spacing:.05em;font-size:40px;font-weight:900;animation:.4s cubic-bezier(.2,1.6,.4,1) pop}.final-title{text-align:center;margin:0 0 18px;font-size:1.15rem}.cards-grid{flex-wrap:wrap;justify-content:center;gap:12px;margin:0 0 32px;padding:0;list-style:none;display:flex}.cards-grid>li,.cards-grid>span{border:2px solid var(--border);background:linear-gradient(145deg,#7c5cff26,#ff5c8a1a);border-radius:18px;flex:100px;place-items:center;gap:6px;min-width:96px;max-width:140px;padding:18px 10px;display:grid}.cards-grid .rank{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.8rem;font-weight:800}.cards-grid .num{background:linear-gradient(90deg, var(--gold), #ff9f1c);color:#0000;background-clip:text;font-size:2.5rem;font-weight:900;line-height:1}.cards-grid .winner-main{background:linear-gradient(145deg,#ffc83d40,#ff9f1c1a);border-color:#ffc83de6;animation:2s infinite alternate winnerPulse;box-shadow:0 0 40px #ffc83d66}@keyframes winnerPulse{0%{box-shadow:0 0 30px #ffc83d4d}to{box-shadow:0 0 60px #ffc83d99}}.cards-grid .winner-main .num{font-size:3.1rem}.cards-grid .winner-main .rank{color:var(--gold)}.cards-grid.agua>li,.cards-grid.agua>span{min-width:72px;max-width:92px;color:var(--danger);background:#ff6b6b1a;border-color:#ff6b6b59;flex-basis:78px;padding:14px 8px;font-size:1.9rem;font-weight:900}#winners{flex-wrap:wrap;justify-content:center;gap:16px;min-height:48px;margin-top:48px;padding:0;list-style:none;display:flex}#winners li{color:var(--text);letter-spacing:.05em;font-size:40px;font-weight:900;animation:.4s cubic-bezier(.2,1.6,.4,1) pop}#winners .winner-main{color:var(--gold);text-shadow:0 0 20px #ffc83d80}@media (width>=640px){body{align-items:center;padding:32px}main{margin:0}.card{padding:32px}.drum{width:200px;height:200px;font-size:4rem}}
