@import url(https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap);code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.lobby-container{align-items:center;background-color:#131311;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='22'%3E%3Cellipse cx='20' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='40' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='10' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='30' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3C/svg%3E");background-size:40px 22px;display:flex;font-family:DM Sans,sans-serif;justify-content:center;min-height:100vh}.lobby-box{background:#fffffff2;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:36px 40px;width:100%}.game-title{color:#1a1a2e;font-size:32px;font-weight:700;margin-bottom:32px;text-align:center}.input-group{margin-bottom:24px}.input-group label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:6px;text-align:left}.input-group input{border:2px solid #e0e0e0;border-radius:10px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .3s;width:100%}.input-group input:focus{border-color:#4a90d9;outline:none}.button-group{display:flex;flex-direction:column;gap:12px}.btn{border:none;border-radius:10px;font-size:16px;font-weight:600;padding:14px 24px;transition:all .3s}.btn:disabled{opacity:.6}.btn-secondary-lobby{background:#0000;border:1.5px solid #2ead87;color:#2ead87;flex:1 1}.btn-secondary-lobby:disabled{background:#0000;border-color:#2a2a28;color:#5a5a5a;cursor:not-allowed}.btn-secondary-lobby:hover:not(:disabled){background:#2ead871a;box-shadow:0 8px 25px #2ead8733;transform:translateY(-2px)}.divider{color:#999;font-size:14px;padding:4px 0;text-align:center}.join-group{display:flex;gap:12px}.join-group input{border:2px solid #e0e0e0;border-radius:10px;flex:1 1;font-size:16px;letter-spacing:2px;padding:12px 16px;text-transform:uppercase;width:40%}.join-group input:focus{border-color:#f5576c;outline:none}.error-message{background:#c0392b14;border:.5px solid #c0392b40;border-radius:10px;color:#c0392b;font-size:14px;margin-top:16px;padding:12px}.error-message,.room-created{text-align:center}.room-created h2{color:#2ead87;font-family:"Noto Serif JP",serif;font-size:24px;font-weight:700;margin-bottom:20px}.game-code-display{background:#2ead870f;border:.5px solid #2ead872e;border-radius:12px;margin:16px 0;padding:20px}.code-label{color:#aaa;display:block;font-size:11px;letter-spacing:.18em;margin-bottom:8px;text-transform:uppercase}.code-value{color:#2ead87;font-family:Courier New,monospace;font-size:48px;font-weight:700;letter-spacing:8px}.waiting-text{color:#aaa;font-size:16px;margin:16px 0}.hint-text{color:#5a5a5a;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.loading-spinner{animation:spin 1s linear infinite;font-size:40px}.hint-text{animation:pulse 1.5s ease-in-out infinite;color:#888;font-size:14px;margin-top:12px}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.room-created .loading-spinner{font-size:48px;margin:20px 0}.room-created .waiting-text{color:#666;font-size:16px;margin:16px 0 8px}.card{align-items:center;background:#0000;border:none;border-radius:6px;box-shadow:0 4px 12px #00000040;box-sizing:border-box;cursor:pointer;display:flex;flex-shrink:0;height:112px;justify-content:center;overflow:visible;padding:0;position:relative;transition:transform .2s ease,box-shadow .2s ease;-webkit-user-select:none;user-select:none;width:auto}.card-small{height:84px}.card-image{border-radius:6px;display:block;height:100%;width:auto}.card:hover:not(.disabled){box-shadow:0 8px 25px #00000059;transform:translateY(-6px) scale(1.02);z-index:10}.card.selected{box-shadow:0 0 0 3px gold,0 8px 25px #ffd70066;transform:translateY(-12px) scale(1.03);z-index:5}.card.disabled{cursor:not-allowed;opacity:.6;transform:none!important}.card.disabled:hover{box-shadow:0 4px 12px #00000040;transform:none!important}.card-back-content{align-items:center;background:linear-gradient(135deg,#2d2d6b,#1a1a4e);border:2px solid #4a4a8a;border-radius:6px;box-shadow:inset 0 0 20px #0000004d;display:flex;font-size:32px;height:100%;justify-content:center;width:80px}@media (max-width:768px){.card{height:84px}.card-small{height:63px}}@media (max-width:480px){.card{height:70px}.card-small{height:53px}}:root{--ink:#e8e5df;--ink-mid:#aaa;--ink-light:#5a5a5a;--paper:#131311;--accent:#2ead87;--accent-dim:#0e6e55;--accent-pale:#2ead870f;--accent-border:#2ead872e;--rule:#ffffff0f;--serif:"Noto Serif JP",serif;--sans:"DM Sans",sans-serif;--gold:#c9a84c;--gold-pale:#c9a84c14;--gold-border:#c9a84c38}#root,.game-root,body,html{background-color:#131311;background-color:var(--paper);min-height:100vh}.game-root{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='22'%3E%3Cellipse cx='20' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='40' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='10' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='30' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3C/svg%3E");background-size:40px 22px;color:#e8e5df;color:var(--ink);display:flex;flex-direction:column;font-family:DM Sans,sans-serif;font-family:var(--sans);height:100vh;min-width:640px;overflow:hidden}.status-strip{align-items:center;border-bottom:.5px solid #ffffff0f;border-bottom:.5px solid var(--rule);display:flex;flex-shrink:0;gap:12px;justify-content:center;padding:8px 24px;position:relative}.status-dot{background:#5a5a5a;background:var(--ink-light);border-radius:50%;flex-shrink:0;height:6px;width:6px}.status-dot.active{background:#2ead87;background:var(--accent);box-shadow:0 0 6px #2ead8780}.status-dot.gold{background:#c9a84c;background:var(--gold);box-shadow:0 0 6px #c9a84c80}.status-label{color:#aaa;color:var(--ink-mid);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.status-label.my-turn{color:#2ead87;color:var(--accent)}.status-label.decision{color:#c9a84c;color:var(--gold)}.game-grid{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-areas:"opponent  captures" "table     captures" "hand      captures";grid-template-columns:1fr .3fr;grid-template-rows:auto 1fr auto;min-height:0;overflow:hidden}.area-opponent{border-bottom:.5px solid #ffffff0f;border-bottom:.5px solid var(--rule);flex-direction:column;gap:8px;grid-area:opponent}.area-opponent,.area-table{display:flex;padding:12px 20px}.area-table{gap:16px;grid-area:table;overflow:hidden}.area-hand{border-top:.5px solid #ffffff0f;border-top:.5px solid var(--rule);gap:8px;grid-area:hand;padding:12px 20px}.area-captures,.area-hand{display:flex;flex-direction:column}.area-captures{border-left:.5px solid #ffffff0f;border-left:.5px solid var(--rule);gap:16px;grid-area:captures;overflow-y:auto;padding:16px 14px}.area-label{color:#5a5a5a;color:var(--ink-light);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.cards-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.cards-row,.cards-row.centered{justify-content:center}.card-back{border-radius:8px;flex-shrink:0;height:100px;overflow:hidden;width:72px}.card-back svg{display:block}.deck-col{align-items:center;align-self:flex-start;background:#ffffff05;border:.5px solid #ffffff0f;border:.5px solid var(--rule);border-radius:12px;display:flex;flex-direction:column;flex-shrink:0;gap:10px;min-width:110px;padding:12px}.deck-count{color:#aaa;color:var(--ink-mid);font-size:11px;letter-spacing:.1em}.deck-count span{color:#2ead87;color:var(--accent);font-weight:500}.table-col{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow:hidden}.table-cards{align-content:flex-start;display:flex;flex-wrap:wrap;gap:8px}.capture-hint{color:#c9a84c;color:var(--gold);font-size:11px;letter-spacing:.06em}.captures-player{display:flex;flex-direction:column;gap:8px}.captures-player-label{border-bottom:.5px solid #ffffff0f;border-bottom:.5px solid var(--rule);color:#5a5a5a;color:var(--ink-light);font-size:10px;letter-spacing:.18em;padding-bottom:6px;text-transform:uppercase}.capture-group{display:flex;flex-direction:column;gap:4px}.capture-group-label{color:#5a5a5a;color:var(--ink-light);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.1em}.capture-group-label span{color:#2ead87;color:var(--accent)}.capture-group-cards{display:flex;flex-wrap:wrap;gap:3px}.empty-group{color:#5a5a5a;color:var(--ink-light);font-size:11px;opacity:.4}.stacked-card{box-shadow:-2px -2px 0 #1a1a18,-4px -4px 0 #151513}.game-error,.game-loading{align-items:center;background-color:#131311;background-color:var(--paper);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='22'%3E%3Cellipse cx='20' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='40' cy='22' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='10' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3Cellipse cx='30' cy='11' rx='20' ry='14' fill='none' stroke='%232ead87' stroke-width='.4' stroke-opacity='.07'/%3E%3C/svg%3E");background-size:40px 22px;color:#e8e5df;color:var(--ink);display:flex;flex-direction:column;font-family:DM Sans,sans-serif;font-family:var(--sans);gap:16px;justify-content:center;min-height:100vh}.game-error .btn{margin-top:8px}.loading-spinner{animation:spin 1.4s linear infinite;font-size:2rem}@keyframes spin{to{transform:rotate(1turn)}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d0d0bd1;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100}.modal{background:#1c1c1a;border:.5px solid #2ead872e;border:.5px solid var(--accent-border);border-radius:18px;display:flex;flex-direction:column;gap:24px;max-width:420px;padding:36px 40px;width:100%}.modal-kanji{color:#2ead87;color:var(--accent);font-size:32px;font-weight:300;opacity:.4}.modal-kanji,.modal-title{font-family:"Noto Serif JP",serif;font-family:var(--serif);text-align:center}.modal-title{color:#e8e5df;color:var(--ink);font-size:22px;font-weight:700;line-height:1.3}.modal-sub{color:#5a5a5a;color:var(--ink-light);font-size:12px;letter-spacing:.14em;text-align:center;text-transform:uppercase}.yaku-list{background:#c9a84c14;background:var(--gold-pale);border:.5px solid #c9a84c38;border:.5px solid var(--gold-border);border-radius:10px;display:flex;flex-direction:column;gap:6px;list-style:none;padding:14px 16px}.yaku-item{color:#aaa;color:var(--ink-mid);display:flex;font-size:13.5px;justify-content:space-between}.yaku-pts,.yaku-total{color:#c9a84c;color:var(--gold);font-weight:500}.yaku-total{border-top:.5px solid #c9a84c38;border-top:.5px solid var(--gold-border);display:flex;font-size:14px;justify-content:space-between;margin-top:2px;padding-top:8px}.modal-buttons{display:flex;gap:10px}.btn-koikoi{background:#0000;border:.5px solid #ffffff0f;border:.5px solid var(--rule);border-radius:10px;color:#aaa;color:var(--ink-mid);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.04em;padding:12px;transition:border-color .18s,color .18s}.btn-koikoi:hover{border-color:#ffffff26;color:#e8e5df;color:var(--ink)}.btn-shobu{background:#2ead870f;background:var(--accent-pale);border:.5px solid #2ead872e;border:.5px solid var(--accent-border);border-radius:10px;color:#2ead87;color:var(--accent);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.04em;padding:12px;transition:background .18s}.btn-shobu:hover{background:#2ead871f}.score-rows{display:flex;flex-direction:column;gap:8px}.score-row{align-items:center;border-bottom:.5px solid #ffffff0f;border-bottom:.5px solid var(--rule);color:#aaa;color:var(--ink-mid);display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.score-row:last-child{border-bottom:none}.score-row .score-pts{color:#e8e5df;color:var(--ink);font-weight:500}.score-row.winner .score-pts{color:#2ead87;color:var(--accent)}.btn{border:.5px solid #0000;border-radius:8px;cursor:pointer;font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.04em;padding:10px 20px;transition:all .18s}.btn:disabled{cursor:not-allowed;opacity:.4}.btn-primary{background:#2ead870f;background:var(--accent-pale);border-color:#2ead872e;border-color:var(--accent-border);color:#2ead87;color:var(--accent)}.btn-primary:hover:not(:disabled){background:#2ead871f}.btn-secondary{background:#0000;border-color:#ffffff0f;border-color:var(--rule);color:#aaa;color:var(--ink-mid)}.btn-secondary:hover:not(:disabled){border-color:#ffffff1f;color:#e8e5df;color:var(--ink)}@media (max-height:560px),(max-width:640px){.game-root{height:auto;min-height:100vh;overflow:auto}.game-grid{grid-template-areas:"opponent" "table" "hand" "captures";grid-template-columns:1fr;grid-template-rows:auto auto auto auto;height:auto;overflow:visible}.area-captures{border-left:none;border-top:.5px solid #ffffff0f;border-top:.5px solid var(--rule);flex-direction:row;flex-wrap:wrap;overflow:visible}.captures-player{flex:1 1;min-width:140px}}.App{text-align:center}.back-button-container{left:20px;position:fixed;top:20px;z-index:1000}.back-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .3s}.back-button:hover{background:#ffffff4d}*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}
/*# sourceMappingURL=main.e7dee57c.css.map*/