*,:before,:after{box-sizing:border-box}html,body{background:#0f0f1a;min-height:100dvh;margin:0;padding:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f1a;--surface:#1a1a2e;--surface2:#16213e;--accent:#e94560;--accent2:#f5a623;--text:#e8e8f0;--text-muted:#889;--radius:16px;--seam:#f5a623}body{background:var(--bg);color:var(--text);flex-direction:column;align-items:center;min-height:100dvh;font-family:Segoe UI,system-ui,sans-serif;display:flex}#root{flex-direction:column;width:100%;max-width:560px;min-height:100dvh;display:flex}.app-loading,.app-error{height:100dvh;color:var(--text-muted);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.app-error{color:var(--accent)}.hybrid-builder{flex-direction:column;flex:1;align-items:center;gap:0;padding:16px 16px 32px;display:flex}.builder-header{text-align:center;margin-bottom:16px}.app-title{background:linear-gradient(135deg, var(--accent), var(--accent2));-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:900}.app-subtitle{color:var(--text-muted);margin-top:2px;font-size:.9rem}.creature-stage{background:var(--surface);border-radius:var(--radius);flex-direction:column;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.half-selector{justify-content:space-between;align-items:center;width:100%;height:440px;display:flex;position:relative;overflow:hidden}.half-selector--top{background:linear-gradient(180deg, var(--surface2) 0%, var(--surface) 100%)}.half-selector--bottom{background:linear-gradient(0deg, var(--surface2) 0%, var(--surface) 100%)}.half-image-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;height:100%;display:flex;position:relative}.half-image{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;width:400px;height:400px}.half-image--top{object-position:bottom center;margin-bottom:-20px}.half-image--bottom{object-position:top center;margin-top:-20px}.half-label{color:var(--text-muted);white-space:nowrap;background:#0006;border-radius:99px;padding:2px 8px;font-size:.75rem;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.nav-btn{width:44px;height:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:2.2rem;transition:color .15s,background .15s;display:flex}.nav-btn:hover{color:var(--text);background:#ffffff0d}.nav-btn:active{opacity:.7}.seam-line{background:linear-gradient(90deg, transparent, var(--seam), transparent);width:100%;height:4px;box-shadow:0 0 12px var(--seam);z-index:1;flex-shrink:0}.creature-info{text-align:center;width:100%;padding:20px 16px 16px}.creature-name{color:var(--accent2);letter-spacing:-.5px;margin-bottom:8px;font-size:2rem;font-weight:900}.creature-steckbrief{color:var(--text-muted);max-width:360px;margin:0 auto;font-size:.9rem;line-height:1.6}.builder-actions{justify-content:center;gap:12px;width:100%;margin-top:16px;display:flex}.btn{cursor:pointer;border:none;border-radius:99px;padding:12px 24px;font-size:1rem;font-weight:700;transition:transform .1s,opacity .15s}.btn:active{transform:scale(.96)}.btn--random{background:var(--surface2);color:var(--text);border:1px solid #ffffff1a}.btn--random:hover{background:#1e2a45}.btn--share{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;flex:1;max-width:200px}.btn--share:hover{opacity:.9}.btn--build{background:var(--accent);color:#fff}.counter-display{margin-top:20px}.counter-label{color:var(--text-muted);font-size:.75rem}.hybrid-builder--compact{padding-top:0}.btn--party-entry{color:var(--accent);cursor:pointer;background:0 0;border:1px solid #e9456059;border-radius:99px;margin:4px auto 24px;padding:10px 28px;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s;display:block}.btn--party-entry:hover{border-color:var(--accent);background:#e9456014}.party-phase{flex-direction:column;align-items:center;gap:16px;width:100%;min-height:100dvh;padding:28px 16px 36px;display:flex}.party-badge{letter-spacing:2px;background:var(--accent);color:#fff;border-radius:99px;padding:3px 12px;font-size:.65rem;font-weight:900}.party-header{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.party-title{color:var(--text);font-size:1.7rem;font-weight:900;line-height:1.2}.party-lobby{gap:14px}.lobby-count-row{align-items:center;gap:28px;margin:4px 0;display:flex}.count-btn{background:var(--surface);width:48px;height:48px;color:var(--text);cursor:pointer;border:2px solid #ffffff1f;border-radius:50%;font-size:1.6rem;line-height:1;transition:background .15s}.count-btn:hover:not(:disabled){background:var(--surface2)}.count-btn:disabled{opacity:.3;cursor:default}.count-display{color:var(--accent2);text-align:center;min-width:52px;font-size:3.5rem;font-weight:900}.count-label{color:var(--text-muted);margin-top:-8px;font-size:.85rem}.lobby-names{flex-direction:column;gap:8px;width:100%;max-height:280px;display:flex;overflow-y:auto}.name-input{background:var(--surface);width:100%;color:var(--text);border:1px solid #ffffff1a;border-radius:10px;outline:none;padding:12px 16px;font-size:1rem;transition:border-color .15s}.name-input:focus{border-color:var(--accent)}.btn--party-primary{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;cursor:pointer;border:none;border-radius:99px;width:100%;margin-top:auto;padding:15px;font-size:1.1rem;font-weight:900;transition:opacity .15s,transform .1s}.btn--party-primary:active{transform:scale(.97)}.btn--party-primary:disabled{opacity:.35;cursor:default;transform:none}.btn--secondary{background:var(--surface2);color:var(--text);cursor:pointer;border:1px solid #ffffff1a;border-radius:99px;flex:1;padding:14px;font-size:1rem}.btn--party-ready{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:99px;margin-top:auto;padding:14px 40px;font-size:1.1rem;font-weight:700;transition:opacity .15s,transform .1s}.btn--party-ready:active{transform:scale(.97)}.btn--done{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2a9d8f,#52b788);border:none;border-radius:99px;width:100%;max-width:260px;padding:14px;font-size:1.1rem;font-weight:900;transition:opacity .15s,transform .1s}.btn--done:active{transform:scale(.97)}.party-handoff{text-align:center;background:var(--surface2);justify-content:center;gap:20px}.handoff-icon{font-size:5rem;line-height:1}.handoff-headline{color:var(--text);font-size:2rem;font-weight:900}.handoff-sub{color:var(--text-muted);max-width:280px;font-size:1rem}.party-build{gap:0;padding:0}.build-header{background:var(--surface2);border-bottom:1px solid #ffffff0d;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;display:flex}.build-player-name{color:var(--accent2);font-size:1.05rem;font-weight:700}.timer-ring{width:52px;height:52px}.party-vote{gap:14px}.vote-grid{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.vote-card{background:var(--surface);cursor:pointer;border:2px solid #ffffff14;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 8px 8px;transition:border-color .15s,background .15s,transform .1s;display:flex;position:relative}.vote-card:hover{border-color:#fff3}.vote-card--selected{border-color:var(--accent2);background:#f5a62314}.vote-card:active{transform:scale(.97)}.vote-creature{flex-direction:column;align-items:center;width:100%;display:flex}.vote-img{object-fit:contain;width:88px;height:88px}.vote-img--top{margin-bottom:-3px}.vote-img--bottom{margin-top:-3px}.vote-seam{background:linear-gradient(90deg, transparent, var(--seam), transparent);opacity:.7;width:100%;height:2px}.vote-name{color:var(--accent2);text-align:center;word-break:break-word;font-size:.82rem;font-weight:700}.vote-check{color:var(--accent2);font-size:1rem;font-weight:900;position:absolute;top:6px;right:8px}.party-results{gap:20px}.results-podium{text-align:center}.winner-crown{margin-bottom:6px;font-size:3.5rem;line-height:1}.winner-headline{color:var(--accent2);font-size:1.8rem;font-weight:900;line-height:1.2}.winner-creature{color:var(--text-muted);margin-top:4px;font-size:1rem}.results-list{flex-direction:column;gap:8px;width:100%;display:flex}.result-row{background:var(--surface);border:1px solid #ffffff0d;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.result-row--winner{border-color:var(--accent2);background:#f5a6230f}.result-rank{color:var(--text-muted);min-width:22px;font-size:1.1rem;font-weight:900}.result-mini{flex-direction:column;flex-shrink:0;width:40px;display:flex}.result-img{object-fit:contain;width:40px;height:40px}.result-img--top{margin-bottom:-3px}.result-img--bottom{margin-top:-3px}.result-info{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.result-creature-name{color:var(--accent2);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:700;overflow:hidden}.result-player{color:var(--text-muted);font-size:.78rem}.result-votes{white-space:nowrap;font-size:.85rem}.result-vote-num{color:var(--text-muted)}.results-actions{gap:12px;width:100%;margin-top:auto;display:flex}.results-actions .btn--party-primary{flex:1;width:auto;margin-top:0}
