.lobby{height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px}.lobby-deco{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.deco-ring{position:absolute;border-radius:50%;border:1px solid var(--border-gold);opacity:.15}.deco-ring-1{width:500px;height:500px;top:50%;left:50%;transform:translate(-50%,-50%)}.deco-ring-2{width:720px;height:720px;top:50%;left:50%;transform:translate(-50%,-50%)}.lobby-content{width:100%;max-width:380px;display:flex;flex-direction:column;gap:28px;position:relative;z-index:1}.lobby-header{text-align:center}.lobby-title{font-family:var(--font-title);font-size:3.2rem;font-weight:700;background:linear-gradient(135deg,var(--gold-dark),var(--gold-light),var(--gold-dark));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s linear infinite;letter-spacing:.12em}.lobby-subtitle{color:var(--text-secondary);font-style:italic;font-size:1rem;margin-top:6px}.lobby-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tab-bar{display:flex;border-bottom:1px solid var(--border)}.tab-btn{flex:1;padding:14px;background:transparent;color:var(--text-secondary);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;border-radius:0;position:relative}.tab-btn.active{color:var(--gold)}.tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}.lobby-form{display:flex;flex-direction:column;padding:20px;gap:8px}.field-label{font-family:var(--font-title);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary)}.field-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);font-size:1rem;width:100%;transition:border-color .2s}.field-input:focus{outline:none;border-color:var(--gold-dark)}.field-input::placeholder{color:var(--text-muted)}.code-input{font-family:var(--font-title);font-size:1.4rem;letter-spacing:.3em;text-align:center;text-transform:uppercase}.btn-lobby{margin-top:12px}.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.player-card-row{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;transition:border-color .2s;animation:fadeIn .3s ease}.player-card-row.me{border-color:var(--border-gold)}.player-card-row.active{border-color:var(--gold-dark);box-shadow:0 0 12px #c9a84c26}.mask-slot{flex-shrink:0}.mask-back{width:44px;height:60px;border-radius:6px;background:linear-gradient(135deg,#1e1e28,#12121a);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.mask-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(201,168,76,.06) 4px,rgba(201,168,76,.06) 5px)}.mask-img-small{width:100%;height:100%;object-fit:cover;border-radius:5px}.mask-label-hidden{font-family:var(--font-title);font-size:1.4rem;color:var(--border-gold);position:relative;z-index:1}.player-info{flex:1;display:flex;flex-direction:column;gap:4px}.player-name-row{display:flex;align-items:center;gap:6px}.player-name-text{font-family:var(--font-title);font-size:.9rem;color:var(--text-primary)}.you-badge{font-size:.6rem;font-family:var(--font-title);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border-gold);color:var(--gold);padding:1px 5px;border-radius:3px}.active-badge{color:var(--gold);font-size:.7rem;animation:pulse 1s ease infinite}.player-coins-row{display:flex;align-items:center;gap:4px}.coin-dot{color:var(--coin-gold);font-size:.9rem}.coin-count{font-family:var(--font-title);font-size:.95rem;color:var(--coin-gold)}.revealed-badge{margin-left:6px;font-size:.65rem;font-family:var(--font-title);text-transform:uppercase;letter-spacing:.08em;color:var(--red-light);border:1px solid var(--red);padding:1px 5px;border-radius:3px}.player-status{flex-shrink:0}.status-badge{font-size:.6rem;font-family:var(--font-title);text-transform:uppercase;letter-spacing:.08em;padding:3px 7px;border-radius:4px;font-weight:700}.contest-badge{background:var(--red);color:#fff}.announce-badge{background:var(--gold-dark);color:var(--bg-dark)}.action-menu{padding:16px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .2s ease}.action-title{font-family:var(--font-title);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary);margin-bottom:4px}.action-list{display:flex;flex-direction:column;gap:6px}.action-btn{display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;text-align:left;color:var(--text-primary);transition:border-color .2s,background .2s}.action-btn:hover:not(.disabled){border-color:var(--gold-dark);background:var(--bg-card)}.action-btn.disabled{opacity:.35;cursor:not-allowed}.action-icon{font-size:1.3rem;width:28px;text-align:center;flex-shrink:0}.action-text{display:flex;flex-direction:column;gap:2px}.action-label{font-family:var(--font-title);font-size:.9rem;color:var(--text-primary)}.action-desc{font-size:.78rem;color:var(--text-muted);font-style:italic}.action-step-header{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-secondary);margin-bottom:4px}.back-btn{background:transparent;color:var(--gold);font-family:var(--font-title);font-size:.75rem;padding:4px 8px;border:1px solid var(--border-gold);border-radius:4px}.player-targets{display:flex;flex-direction:column;gap:6px}.target-btn{display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary)}.target-btn:hover{border-color:var(--gold-dark)}.target-name{font-family:var(--font-title);font-size:.9rem}.target-coins{color:var(--coin-gold);font-family:var(--font-title);font-size:.85rem}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.card-announce-btn{padding:10px 6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-title);font-size:.75rem;text-align:center}.card-announce-btn:hover{border-color:var(--gold-dark);color:var(--gold);background:var(--bg-card)}.contest-bar{padding:16px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .2s ease}.contest-announce{text-align:center;font-size:1rem}.announce-name{color:var(--gold);font-family:var(--font-title);font-weight:700}.announce-text{color:var(--text-secondary)}.announce-card{color:var(--text-primary);font-family:var(--font-title);font-weight:700;font-size:1.1rem}.contestants-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.contestant-chip{background:var(--red);color:#fff;padding:3px 10px;border-radius:12px;font-size:.78rem;font-family:var(--font-title)}.contest-timer-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.contest-timer-fill{height:100%;transition:width .1s linear,background-color .3s;border-radius:2px}.contest-actions{display:flex;gap:8px;justify-content:center}.btn-contest{background:var(--red);color:#fff;font-family:var(--font-title);font-size:1rem;font-weight:700;padding:12px 28px;border-radius:var(--radius-sm);letter-spacing:.08em;box-shadow:0 4px 16px #c0392b66}.btn-contest:hover{background:var(--red-light)}.already-contested{color:var(--red-light);font-style:italic;font-size:.9rem;display:flex;align-items:center}.btn-close-contest{background:transparent;border:1px solid var(--border-gold);color:var(--gold);font-family:var(--font-title);font-size:.8rem;padding:8px 16px;border-radius:var(--radius-sm);letter-spacing:.08em}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.reveal-modal{background:var(--bg-card);border:1px solid var(--border-gold);border-radius:var(--radius);padding:28px 24px;max-width:320px;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 0 40px #c9a84c33}.reveal-mask-img{width:96px;height:128px;object-fit:cover;border-radius:8px;border:1px solid var(--border-gold);margin-bottom:4px}.reveal-eyeicon{font-size:2rem;margin-bottom:4px}.reveal-label{font-size:.7rem;font-family:var(--font-title);text-transform:uppercase;letter-spacing:.2em;color:var(--text-secondary)}.reveal-card-name{font-family:var(--font-title);font-size:2rem;font-weight:700;color:var(--gold);letter-spacing:.05em}.reveal-effect{font-size:.9rem;color:var(--text-secondary);font-style:italic;text-align:center;line-height:1.4}.reveal-hint{font-size:.72rem;color:var(--text-muted);margin-top:8px;animation:pulse 2s ease infinite}.param-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.param-modal{background:var(--bg-card);border:1px solid var(--border-gold);border-radius:var(--radius);padding:24px 20px;max-width:340px;width:100%;display:flex;flex-direction:column;gap:14px;box-shadow:0 0 40px #c9a84c26}.param-title{font-family:var(--font-title);font-size:.9rem;color:var(--gold);text-align:center;letter-spacing:.05em}.param-player-list{display:flex;flex-direction:column;gap:6px}.param-player-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;color:var(--text-primary);font-size:.95rem}.param-player-btn.selected-a{border-color:var(--gold);background:var(--bg-card)}.param-player-btn.selected-b{border-color:var(--gold-dark);background:var(--bg-card)}.param-coins{color:var(--coin-gold);font-family:var(--font-title);font-size:.8rem;margin-left:auto;margin-right:4px}.param-hint{font-size:.82rem;color:var(--text-muted);font-style:italic;text-align:center}.doswap-buttons{display:flex;gap:10px;width:100%}.btn-action{flex:1;padding:12px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:700;font-family:var(--font-title);letter-spacing:.05em}.sel-badge{width:20px;height:20px;background:var(--gold);color:var(--bg-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-family:var(--font-title);font-weight:700;flex-shrink:0}.event-log{position:fixed;bottom:0;right:0;left:0;z-index:50;background:var(--bg-card);border-top:1px solid var(--border)}.event-log.open{max-height:40vh;display:flex;flex-direction:column}.log-toggle{width:100%;padding:6px 16px;background:transparent;color:var(--text-muted);font-family:var(--font-title);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;text-align:left;border-top:1px solid var(--border)}.log-entries{flex:1;overflow-y:auto;padding:8px 16px 12px;display:flex;flex-direction:column;gap:4px}.log-entry{font-size:.82rem;color:var(--text-secondary);font-style:italic;padding:4px 0;border-bottom:1px solid var(--border)}.log-entry:last-child{border-bottom:none}.log-win{color:var(--gold);font-style:normal;font-weight:600}.game-board{height:100%;display:flex;flex-direction:column;overflow:hidden;position:relative}.board-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0}.justice-pot,.my-coins{display:flex;align-items:center;gap:5px;font-family:var(--font-title);font-size:1rem;color:var(--coin-gold);min-width:48px}.justice-pot{color:var(--text-secondary)}.justice-pot .coin-icon{color:var(--text-muted)}.coin-icon{font-size:1.1rem}.turn-indicator{font-family:var(--font-body);font-size:.9rem;color:var(--text-secondary);text-align:center}.my-turn-text{color:var(--gold);font-family:var(--font-title);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;animation:pulse 1.5s ease infinite}.other-turn-text strong{color:var(--text-primary)}.players-area{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.action-area{flex-shrink:0;border-top:1px solid var(--border);background:var(--bg-card);max-height:55vh;overflow-y:auto}.waiting-turn{padding:20px;text-align:center;color:var(--text-muted);font-style:italic}.waiting-turn strong{color:var(--text-secondary)}.swap-choice-panel{padding:20px;display:flex;flex-direction:column;align-items:center;gap:12px;animation:fadeIn .2s ease}.swap-choice-text{font-size:1rem;color:var(--text-primary);text-align:center}.swap-choice-text strong{color:var(--gold)}.swap-choice-hint{font-size:.85rem;color:var(--text-muted);font-style:italic}.swap-choice-buttons{display:flex;gap:10px;width:100%;max-width:320px}.btn-action{flex:1;padding:12px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:700;letter-spacing:.05em}.btn-yes{background:var(--green);color:#fff}.btn-no{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary)}.gourou-panel{padding:20px;display:flex;flex-direction:column;align-items:center;gap:12px;animation:fadeIn .2s ease}.gourou-text{color:var(--red-light);font-size:1rem;font-weight:600;text-align:center}.gourou-hint{color:var(--text-muted);font-style:italic;font-size:.85rem}.card-picker{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:360px}.card-pick-btn{padding:6px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8rem;font-family:var(--font-title)}.card-pick-btn.selected{border-color:var(--gold);color:var(--gold);background:var(--bg-card)}.winner-banner{padding:32px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;animation:fadeIn .4s ease}.btn-play-again{margin-top:12px;background:transparent;border:1px solid var(--border-gold);color:var(--gold);font-family:var(--font-title);font-size:.85rem;padding:10px 24px;border-radius:var(--radius-sm);letter-spacing:.08em}.btn-play-again:hover{background:var(--bg-surface)}.winner-crown{font-size:3rem;color:var(--gold);animation:pulse 2s ease infinite}.winner-banner h2{font-family:var(--font-title);font-size:1.6rem;color:var(--gold);text-align:center}.comp-picker{width:100%;display:flex;flex-direction:column;gap:10px}.comp-header{display:flex;align-items:center;justify-content:space-between}.comp-title{font-family:var(--font-title);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary)}.comp-count{font-family:var(--font-title);font-size:.95rem;font-weight:700;padding:2px 10px;border-radius:10px}.comp-count.ok{color:var(--green);background:#27ae601f}.comp-count.error{color:var(--red-light);background:#e74c3c1f}.comp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.comp-card-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-title);font-size:.68rem;text-align:center;position:relative;transition:border-color .15s,background .15s,color .15s;cursor:pointer}.comp-card-btn.selected{background:var(--bg-card);border-color:var(--gold-dark);color:var(--text-primary)}.comp-card-btn.selected.bank{border-color:var(--coin-gold);color:var(--coin-gold)}.comp-card-btn.locked{border-color:var(--border-gold);color:var(--gold);background:var(--bg-card);cursor:default;opacity:.85}.comp-card-label{line-height:1.2}.comp-bank-dot{font-size:.6rem;color:var(--coin-gold);opacity:.7}.comp-lock{font-size:.6rem;position:absolute;top:3px;right:4px}.comp-errors{display:flex;flex-direction:column;gap:3px}.comp-error{font-size:.78rem;color:var(--red-light);font-style:italic;padding:4px 8px;background:#e74c3c14;border-radius:4px;border-left:2px solid var(--red)}.btn-random{background:transparent;border:1px dashed var(--border);color:var(--text-secondary);font-family:var(--font-title);font-size:.8rem;padding:8px;border-radius:var(--radius-sm);letter-spacing:.08em;transition:border-color .2s,color .2s}.btn-random:hover{border-color:var(--gold-dark);color:var(--gold)}.app{height:100%;width:100%;display:flex;flex-direction:column;position:relative}.error-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--red);color:#fff;padding:10px 20px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.95rem;z-index:9999;animation:fadeIn .2s ease;max-width:90vw;text-align:center}.waiting-room{display:flex;flex-direction:column;align-items:center;padding:32px 20px;gap:24px;height:100%;overflow-y:auto}.waiting-header{display:flex;flex-direction:column;align-items:center;gap:20px}.title-main{font-family:var(--font-title);font-size:2.8rem;font-weight:700;background:linear-gradient(135deg,var(--gold-dark),var(--gold-light),var(--gold-dark));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite;letter-spacing:.1em}.room-code-display{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border-gold);border-radius:var(--radius);padding:16px 28px}.room-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-title)}.room-code{font-family:var(--font-title);font-size:2.4rem;font-weight:700;color:var(--gold);letter-spacing:.3em}.room-hint{font-size:.8rem;color:var(--text-muted);font-style:italic}.player-list{width:100%;max-width:360px;display:flex;flex-direction:column;gap:8px}.player-list h2{font-family:var(--font-title);font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}.player-entry{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;animation:fadeIn .3s ease}.player-entry.me{border-color:var(--border-gold)}.player-idx{width:22px;height:22px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-secondary);font-family:var(--font-title);flex-shrink:0}.player-name{flex:1;font-size:1rem;color:var(--text-primary)}.host-badge,.me-badge{font-size:.65rem;font-family:var(--font-title);text-transform:uppercase;letter-spacing:.1em;padding:2px 7px;border-radius:4px}.host-badge{background:var(--gold-dark);color:var(--gold-light)}.me-badge{background:transparent;border:1px solid var(--border-gold);color:var(--gold)}.btn-primary{background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:var(--bg-dark);font-size:1rem;font-weight:700;padding:14px 32px;border-radius:var(--radius);letter-spacing:.08em;width:100%;max-width:320px;box-shadow:0 4px 20px #c9a84c4d}.btn-primary:hover{background:linear-gradient(135deg,var(--gold),var(--gold-light));box-shadow:0 4px 28px #c9a84c80}.btn-start{margin-top:8px}.waiting-hint{color:var(--text-muted);font-style:italic;font-size:.9rem;text-align:center;animation:pulse 2s ease infinite}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gold: #c9a84c;--gold-light: #e8c96a;--gold-dark: #8b6914;--bg-dark: #0d0d0f;--bg-card: #1a1a20;--bg-surface: #141418;--border: #2a2a35;--border-gold: #c9a84c55;--text-primary: #f0e6cc;--text-secondary: #9a8a6a;--text-muted: #5a5060;--red: #c0392b;--red-light: #e74c3c;--green: #27ae60;--coin-gold: #f0c040;--font-title: "Cinzel", serif;--font-body: "Crimson Text", serif;--radius: 12px;--radius-sm: 8px}html,body,#root{height:100%;width:100%;overflow:hidden}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);font-size:16px;-webkit-font-smoothing:antialiased;touch-action:manipulation}button{font-family:var(--font-title);cursor:pointer;border:none;outline:none;transition:all .2s ease}button:active{transform:scale(.97)}input{font-family:var(--font-body);font-size:1rem}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.gold-text{color:var(--gold)}.muted{color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}
