:root{--bg-main:#0a0e17;--bg-surface:#131b2e;--bg-card:#18233c;--bg-card-hover:#1f2d4d;--border-subtle:#253556;--border-active:#e0a96d;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--accent-gold:#e0a96d;--accent-gold-dark:#b8824a;--accent-gold-glow:#e0a96d40;--color-success:#10b981;--color-success-bg:#10b9811f;--color-success-border:#059669;--color-danger:#ef4444;--color-danger-bg:#ef44441f;--color-danger-border:#dc2626;--font-serif:"Cinzel", "Noto Serif JP", serif;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--shadow-sm:0 2px 4px #00000040;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 10px 25px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}.app-container{flex-direction:column;min-height:100vh;display:flex}.game-header{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#0a0e17d9;padding:.75rem 1.5rem;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1440px;margin:0 auto;display:flex}.title-group{flex-direction:column;gap:.15rem;display:flex}.kanji-subtitle{font-family:var(--font-serif);letter-spacing:.18em;color:var(--accent-gold);text-transform:uppercase;font-size:.75rem}.main-title{font-family:var(--font-serif);letter-spacing:.08em;color:#fff;background:linear-gradient(135deg, #fff 40%, var(--accent-gold) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.35rem;font-weight:800}.basho-badge{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.75rem;display:inline-flex}.pulse-dot{background-color:var(--accent-gold);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}.pulse-dot.active{background-color:var(--color-success)}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.header-controls{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.stat-pill{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-full);align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.85rem;display:flex}.stat-label{color:var(--text-muted)}.stat-value{color:var(--accent-gold);font-weight:700}.community-stat{display:none}@media (width>=900px){.community-stat{display:flex}}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:.48rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .18s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg, var(--accent-gold), var(--accent-gold-dark));color:#0b0f17;box-shadow:0 2px 8px #e0a96d4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, #ecc18e, var(--accent-gold));box-shadow:0 4px 12px #e0a96d73}.btn-secondary{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:var(--bg-card);border-color:var(--border-active)}.btn-accent{background:var(--bg-card);color:var(--accent-gold);border:1px solid var(--border-active)}.btn-sm{padding:.38rem .75rem;font-size:.8rem}.btn-block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.game-layout{grid-template-columns:1fr;gap:1.5rem;width:100%;max-width:1520px;margin:0 auto;padding:1.5rem;display:grid}@media (width>=1024px){.game-layout{grid-template-columns:1fr 340px}}@media (width>=1280px){.game-layout{grid-template-columns:1fr 380px}}.grid-section{flex-direction:column;gap:1rem;display:flex}.section-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.section-title-wrap{flex-direction:column;gap:.15rem;display:flex}.section-title{font-family:var(--font-serif);letter-spacing:.04em;color:var(--text-main);font-size:1.15rem;font-weight:700}.section-hint{color:var(--text-muted);font-size:.8rem}.rikishi-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (width>=640px){.rikishi-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=768px){.rikishi-grid{grid-template-columns:repeat(4,1fr)}}@media (width>=1180px){.rikishi-grid{grid-template-columns:repeat(5,1fr)}}.rikishi-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-user-select:none;user-select:none;flex-direction:column;gap:.5rem;padding:.65rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative}.rikishi-card:hover{background:var(--bg-card-hover);border-color:#3b4d72}.card-number{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text-muted);border-radius:var(--radius-sm);z-index:2;background:#0a0e17bf;padding:.15rem .4rem;font-size:.7rem;font-weight:700;position:absolute;top:.85rem;left:.85rem}.card-image-wrap{aspect-ratio:1;border-radius:var(--radius-md);background:#0f172a;width:100%;position:relative;overflow:hidden}.rikishi-image{object-fit:cover;object-position:center top;transform-origin:top;width:100%;height:100%;transition:transform .25s;display:block;transform:scale(1.35)}.rikishi-card:hover .rikishi-image{transform:scale(1.42)}.rikishi-card.is-hidden-placed{display:none!important}.card-slot-zone{border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:44px;transition:all .2s;display:flex}.slot-placeholder{border:1.5px dashed var(--border-subtle);border-radius:var(--radius-md);width:100%;height:100%;min-height:44px;color:var(--text-dim);cursor:pointer;text-align:center;background:#131b2e80;justify-content:center;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.75rem;display:flex}.slot-icon{opacity:.7;font-size:.7rem}.rikishi-card.awaiting-target .slot-placeholder{border-color:var(--accent-gold);color:var(--accent-gold);background:var(--accent-gold-glow);animation:1.5s infinite border-pulse}@keyframes border-pulse{0%,to{border-color:var(--accent-gold);box-shadow:0 0 #e0a96d4d}50%{border-color:#ffd8a8;box-shadow:0 0 0 4px #e0a96d33}}.rikishi-card.drop-hover{border-color:var(--accent-gold);box-shadow:0 0 15px var(--accent-gold-glow);transform:translateY(-2px)}.rikishi-card.drop-hover .slot-placeholder{background:var(--accent-gold-glow);border-color:var(--accent-gold);color:var(--accent-gold)}.assigned-chip{border:1px solid var(--accent-gold);border-radius:var(--radius-md);color:#fff;cursor:pointer;width:100%;box-shadow:var(--shadow-sm);background:#253352;justify-content:space-between;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.8rem;font-weight:600;display:flex}.assigned-chip:hover{background:#2c3c62}.assigned-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot-remove-btn{color:var(--text-muted);cursor:pointer;background:#0000004d;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;transition:all .15s;display:flex}.slot-remove-btn:hover{background:var(--color-danger);color:#fff}.rikishi-card.card-correct{border-color:var(--color-success);background:linear-gradient(180deg, var(--bg-card) 75%, var(--color-success-bg) 100%);box-shadow:0 0 14px #10b98133}.rikishi-card.card-wrong{border-color:var(--color-danger);background:linear-gradient(180deg, var(--bg-card) 75%, var(--color-danger-bg) 100%);box-shadow:0 0 14px #ef444433}.result-badge{border-radius:var(--radius-md);flex-direction:column;gap:.25rem;width:100%;padding:.35rem .5rem;font-size:.75rem;display:flex}.result-badge.correct{background:var(--color-success-bg);border:1px solid var(--color-success-border)}.result-badge.wrong{background:var(--color-danger-bg);border:1px solid var(--color-danger-border)}.badge-status{letter-spacing:.05em;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;display:flex}.result-badge.correct .badge-status{color:var(--color-success)}.result-badge.wrong .badge-status{color:var(--color-danger)}.badge-rikishi-info,.correct-reveal{flex-wrap:wrap;align-items:baseline;gap:.35rem;display:flex}.result-shikona{color:#fff;font-size:.85rem;font-weight:700}.result-kanji{font-family:var(--font-serif);color:var(--accent-gold);font-size:.8rem}.result-rank{color:var(--text-muted);border-radius:var(--radius-sm);background:#00000040;padding:.05rem .3rem;font-size:.7rem}.guessed-line{color:var(--text-muted);font-size:.72rem}.guessed-line del{color:#fca5a5}.reveal-label{color:var(--text-dim);font-size:.7rem}.community-accuracy-pill{border-radius:var(--radius-full);color:var(--text-muted);background:#00000073;border:1px solid #ffffff14;align-items:center;gap:.3rem;width:fit-content;margin-top:.25rem;padding:.15rem .45rem;font-size:.68rem;display:inline-flex}.community-accuracy-pill .acc-icon{opacity:.8;font-size:.65rem}.community-accuracy-pill .acc-text{color:#e2e8f0;font-weight:600}.bank-section{height:100%;position:relative}.bank-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-height:calc(100dvh - 105px);box-shadow:var(--shadow-md);flex-direction:column;gap:.9rem;padding:1.25rem;display:flex;position:sticky;top:85px}.bank-header-title{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.bank-header-title h3{font-family:var(--font-serif);letter-spacing:.04em;color:var(--text-main);font-size:1.05rem}.badge{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--accent-gold);border-radius:var(--radius-full);padding:.18rem .55rem;font-size:.75rem;font-weight:700}.search-wrap{align-items:center;display:flex;position:relative}.search-input{background:var(--bg-card);border:1px solid var(--border-subtle);width:100%;color:var(--text-main);border-radius:var(--radius-md);padding:.45rem 1.8rem .45rem .75rem;font-family:inherit;font-size:.85rem;transition:border-color .15s}.search-input:focus{border-color:var(--accent-gold);box-shadow:0 0 0 2px var(--accent-gold-glow);outline:none}.clear-search-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.8rem;position:absolute;right:8px}.clear-search-btn:hover{color:#fff}.bank-actions{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.names-container{flex-wrap:wrap;gap:.45rem;padding-right:.35rem;display:flex;overflow-y:auto}.names-container::-webkit-scrollbar{width:6px}.names-container::-webkit-scrollbar-track{background:0 0}.names-container::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.names-container::-webkit-scrollbar-thumb:hover{background:#3b4d72}.name-chip{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-full);cursor:grab;-webkit-user-select:none;user-select:none;padding:.35rem .65rem;font-size:.8rem;font-weight:500;transition:all .18s}.name-chip:hover{background:var(--bg-card-hover);border-color:var(--accent-gold);transform:translateY(-1px)}.name-chip:active{cursor:grabbing}.name-chip.is-dragging{opacity:.4;transform:scale(.95)}.name-chip.is-selected{background:var(--accent-gold);color:#0b0f17;border-color:#fff;font-weight:700;transform:translateY(-2px);box-shadow:0 0 12px #e0a96d80}.name-chip.is-placed{opacity:.35;color:var(--text-dim);cursor:default;background:#131b2e80;border-color:#0000;text-decoration:line-through}.name-chip.is-placed:hover{border-color:#0000;transform:none}.name-chip.game-over{cursor:default;pointer-events:none}.touch-dragging-avatar{z-index:1000;pointer-events:none;background:var(--accent-gold);color:#0b0f17;border-radius:var(--radius-full);opacity:.9;padding:.4rem .8rem;font-weight:700;position:fixed;box-shadow:0 8px 20px #0009}.mobile-dock{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);z-index:90;background:#0a0e17eb;padding:.75rem 1rem;display:none;position:fixed;bottom:0;left:0;right:0}@media (width<=1023px){.mobile-dock{display:block}.bank-section{z-index:110;transition:bottom .3s cubic-bezier(.16,1,.3,1);position:fixed;inset:auto 0 -100%}.bank-section.mobile-open{bottom:0}.bank-card{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:70vh;box-shadow:0 -10px 30px #000000b3}}.modal-dialog{border-radius:var(--radius-lg);width:90vw;max-width:520px;box-shadow:var(--shadow-lg);background:0 0;border:none;margin:auto;padding:0}.modal-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf}.modal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{font-family:var(--font-serif);color:var(--text-main);font-size:1.2rem}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem}.modal-close-btn:hover{color:#fff}.modal-body{color:var(--text-muted);padding:1.5rem}.rules-content p{color:var(--text-main);margin-bottom:1rem}.rules-content ol{flex-direction:column;gap:.65rem;padding-left:1.25rem;display:flex}.rules-content li strong{color:var(--text-main)}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.results-card{text-align:center}.results-header{flex-direction:column;gap:.4rem;padding-top:1.75rem}.rank-title-badge{font-family:var(--font-serif);letter-spacing:.15em;background:linear-gradient(135deg, var(--accent-gold), var(--accent-gold-dark));color:#0b0f17;border-radius:var(--radius-full);padding:.25rem .85rem;font-size:.85rem;font-weight:800;display:inline-block}.score-circle-wrap{flex-direction:column;justify-content:center;align-items:center;margin:1rem 0;display:flex}.score-big{font-family:var(--font-serif);color:#fff;font-size:3rem;font-weight:800;line-height:1}.score-percentage{color:var(--accent-gold);margin-top:.25rem;font-size:1.1rem;font-weight:700}.rank-flavor-text{color:var(--text-main);max-width:380px;margin:0 auto 1.5rem;font-size:.95rem;line-height:1.4}.results-stats-row{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-subtle);grid-template-columns:repeat(3,1fr);gap:.75rem;padding:.85rem;display:grid}.stat-box{flex-direction:column;gap:.2rem;display:flex}.box-label{color:var(--text-dim);text-transform:uppercase;font-size:.7rem}.box-val{color:var(--text-main);font-size:1.1rem;font-weight:700}.results-insights{text-align:left;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem;display:grid}.insight-col{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.insight-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding-bottom:.35rem;font-size:.75rem;font-weight:700}.insight-list{flex-direction:column;gap:.35rem;display:flex}.insight-item{justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.insight-name{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-weight:600;overflow:hidden}.insight-pct{border-radius:var(--radius-sm);padding:.1rem .35rem;font-size:.75rem;font-weight:700}.insight-pct.high{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.insight-pct.low{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.results-footer{justify-content:center}.grid-loading,.grid-error{min-height:350px;color:var(--text-muted);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:1rem;display:flex}.sumo-spinner{border:3px solid var(--border-subtle);border-top-color:var(--accent-gold);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}.button-spinner{border:2px solid #0003;border-top-color:#000;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
