.rule-modal{background:#fff;border-radius:20px;flex-direction:column;width:92%;max-width:480px;height:min(80vh,520px);padding:20px;display:flex;box-shadow:0 30px 70px #00000040}.rule-content{flex:1;margin-top:12px;overflow-y:auto}.rule-image{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:260px;margin:0 auto 16px;display:block}.rule-text{color:#444;font-size:14px;line-height:1.7}.rule-footer{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.rule-footer button{background:var(--hexas-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 14px}.rule-footer button:disabled{background:#ccc}.home-root{background:var(--hexas-bg);justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.home-card{background:#fff;border-radius:24px;flex-direction:column;gap:28px;width:100%;max-width:420px;padding:36px;display:flex;position:relative;box-shadow:0 30px 70px #00000014}.home-title{text-align:center;letter-spacing:.08em;font-size:32px;font-weight:800}.home-form{flex-direction:column;gap:16px;display:flex}.home-input{border:1px solid #dcdcdc;border-radius:12px;width:100%;height:48px;padding:0 14px;font-size:16px;transition:all .15s}.home-input:focus{border-color:var(--hexas-blue);outline:none;box-shadow:0 0 0 3px #1f6feb1a}.home-button{background:var(--hexas-blue);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;height:52px;font-size:18px;font-weight:700;transition:all .2s}.home-button:hover:not(:disabled){transform:scale(1.03)}.home-button:disabled{cursor:not-allowed;background:#c8ccd4}@media (max-width:480px){.home-card{padding:28px 20px}.home-title{font-size:28px}.home-input{height:44px}.home-button{height:48px}}.piece-move-candidate-ring{transition:opacity .12s ease-out,stroke-width .12s ease-out}.hex-tile:hover>.piece-move-candidate-ring{stroke-width:4.5px}@keyframes candidate-ring-pulse{0%{opacity:.4}50%{opacity:.8}to{opacity:.4}}.ghost-tile:hover polygon{fill:#f6eedc;opacity:.6}@keyframes ghost-in{0%{opacity:0;transform:scale(.92)}to{opacity:.45;transform:scale(1)}}@keyframes ghost-pulse{0%{opacity:.25}50%{opacity:.75}to{opacity:.25}}@keyframes piece-pulse{0%{opacity:.75;stroke-width:2.5px}50%{opacity:.95;stroke-width:1px}to{opacity:.75;stroke-width:2.5px}}.piece--selectable{animation:2.2s ease-in-out infinite piece-pulse}.piece--selected{animation:none}.hud-layer{z-index:10;background-color:#fff;flex-direction:column;display:flex;position:relative}.hud-menu{z-index:10;position:absolute;top:6px;right:10px}.match-header{z-index:10;position:relative}.match-header__top{justify-content:space-between;align-items:center;padding:12px 20px 8px;display:flex}.title{letter-spacing:1px;font-size:18px;font-weight:600}.match-header__bar{align-items:stretch;gap:0;width:100%;height:48px;display:flex}.match-header__center{z-index:2;flex:1;justify-content:center;align-items:center;gap:clamp(16px,4vw,64px);min-width:0;display:flex;position:relative}.name-block{z-index:2;color:#fff;flex:1 1 0;align-items:center;width:auto;min-width:0;height:100%;padding:0;display:flex;position:relative}.name-block--host{clip-path:polygon(0 0,calc(100% - 24px) 0,100% 100%,0 100%);background:#2f5fa4;justify-content:right;padding-right:12px}.name-block--guest{clip-path:polygon(24px 0,100% 0,100% 100%,0 100%);background:#b8322a;justify-content:left;padding-left:12px}.player-name{white-space:nowrap;text-overflow:ellipsis;margin:auto max(10%,12px);font-size:clamp(14px,2.5vw,22px);font-weight:600;overflow:hidden}.reserve-block{text-align:center;flex:none;width:auto;min-width:48px;padding:0 6px;position:relative}.reserve__label{opacity:.6;font-size:10px;display:block}.reserve__value{font-size:clamp(14px,2.5vw,20px);font-weight:600;display:block;position:relative}.reserve-block--host{border-bottom:3px solid #2f5fa4}.reserve-block--guest{border-bottom:3px solid #b8322a}.reserve__value.is-consuming{color:var(--time-warning);animation:1s infinite pulse}.reserve__value.is-critical{color:var(--time-danger);animation:1s infinite pulse}.reserve__value.is-zero{color:var(--time-danger)}@media (max-width:600px){.match-header__center{justify-content:space-between;gap:8px}.match-header__top{padding:8px 12px 4px}.match-header__bar{height:42px}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.center-clock{text-align:center;z-index:3;background:#fff;flex:none;min-width:56px;padding:0 8px}.center-clock__label{opacity:.6;font-size:12px}.center-clock__value{font-variant-numeric:tabular-nums;font-size:clamp(20px,6vw,40px);font-weight:700}.center-clock.is-warning .center-clock__value{color:var(--time-warning)}.center-clock.is-critical .center-clock__value{color:var(--time-danger);animation:1s infinite pulse}.center-clock.is-zero .center-clock__value{color:var(--time-danger)}.phase-line{align-items:center;gap:12px;height:32px;padding:0 1rem;font-size:15px;display:flex}.turn-indicator{opacity:.5;align-items:center;gap:6px;width:100px;font-weight:600;display:flex}.turn-indicator--active{opacity:1}.turn-indicator__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.turn-indicator__dot--host{background:#2f5fa4}.turn-indicator__dot--guest{background:#b8322a}.turn-indicator__text{white-space:nowrap;font-size:13px}.phase-indicator{color:#333;font-size:14px}.phase-indicator--inactive{color:#888}.phase-indicator__remaining{margin:0 2px;font-weight:700}.phase-indicator__remaining--last{color:#d32f2f}.undo-button{top:146px;left:calc(16px + env(safe-area-inset-left));z-index:1000;color:#555;cursor:pointer;pointer-events:auto;background:#ffffffe6;border:1px solid #00000014;border-radius:999px;padding:6px 10px;font-size:13px;transition:opacity .15s,transform .15s;position:fixed}.undo-button.hidden{opacity:0;pointer-events:none;transform:translateY(-4px)}.undo-button.enabled:hover{color:#1976d2;background:#1976d214}.reset-view-button{right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;z-index:1000;pointer-events:auto;background:#ffffffe6;border:1px solid #ccc;border-radius:22px;width:44px;height:44px;font-size:18px;position:fixed;box-shadow:0 2px 6px #0003}@media (min-width:768px){.reset-view-button{bottom:32px}}.hud-menu-container{z-index:100;background:#fff;border:1px solid #0000000a;border-radius:16px;width:180px;padding:8px;position:absolute;top:52px;right:16px;box-shadow:0 10px 30px #00000014,0 2px 6px #0000000a}.hud-menu-container button{cursor:pointer;background:0 0;border:none;border-radius:12px;width:100%;padding:10px 12px;font-weight:600;transition:background .15s}.hud-menu-primary{color:#2563eb;background:#e7efff}.hud-menu-primary:hover{background:#dbe7ff}.hud-menu-danger{color:#b91c1c;background:#fdecec}.hud-menu-danger:hover{background:#fbdada}.hud-menu-secondary{color:#6b7280}.hud-menu-secondary:hover{background:#f3f4f6}.hud-menu-button{cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:38px;height:38px;transition:box-shadow .15s;display:flex}.hud-menu-button span{background:#374151;border-radius:2px;width:18px;height:2px}.hud-menu-button:hover{box-shadow:0 8px 20px #00000014,0 2px 6px #0000000a}.dialog-overlay{z-index:200;background:#00000040;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-container{background:#fff;border-radius:20px;width:min(92%,360px);padding:24px;box-shadow:0 20px 60px #0000001f,0 4px 10px #0000000f}.dialog-message{color:#1f2937;margin-bottom:20px;font-size:18px;font-weight:700}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.dialog-cancel{cursor:pointer;color:#374151;background:#f3f4f6;border:none;border-radius:10px;padding:8px 14px;transition:background .15s,box-shadow .15s,transform 50ms}.dialog-cancel:hover{background:#e5e7eb;box-shadow:0 4px 10px #0000000f}.dialog-cancel:active{transform:scale(.97)}.dialog-confirm{color:#2563eb;cursor:pointer;background:#e7efff;border:none;border-radius:10px;padding:8px 14px;font-weight:600;transition:background .15s,box-shadow .15s,transform 50ms}.dialog-confirm:hover{background:#dbe7ff;box-shadow:0 6px 16px #2563eb26}.dialog-confirm:active{transform:scale(.97)}.gameover-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1200;background:#00000059;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:absolute;inset:0}.gameover-card{text-align:center;background:#fff;border-radius:20px;min-width:340px;padding:40px 48px;box-shadow:0 30px 80px #00000040}.gameover-title{margin-bottom:10px;font-size:32px;font-weight:800}.gameover-win{color:#2563eb}.gameover-lose{color:#6b7280}.gameover-reason{opacity:.75;margin-bottom:16px;font-size:14px}.gameover-divider{background:#eee;height:1px;margin:20px 0}.gameover-button{color:#1e3a8a;cursor:pointer;background:#2563eb1f;border:none;border-radius:14px;width:100%;padding:12px 0;font-size:14px;font-weight:600;transition:background .2s,transform 80ms}.gameover-button:hover{background:#2563eb33}.gameover-button:active{transform:translateY(1px)}.gameover-button+.gameover-button{margin-top:10px}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.board-stage{z-index:0;justify-content:center;align-items:center;margin-top:130px;display:flex;position:absolute;inset:0}.board-frame{pointer-events:auto;z-index:1;background:#fff;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 0 0 1px #0000000f,0 6px 20px #00000014}.board-frame svg{touch-action:none;cursor:grab;background-color:#fafafa;width:100%;height:100%;display:block}.board-result-button{right:calc(12px + env(safe-area-inset-right));top:calc(130px + 16px + env(safe-area-inset-bottom));color:#2563eb;cursor:pointer;background:#f3f6ff;border:none;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;transition:background .2s,transform 80ms;position:fixed}.board-result-button:hover{background:#2563eb26}.board-result-button:active{transform:translateY(1px)}@media (max-width:600px){.board-stage{margin-top:116px}}:root{--hexas-red:#e53935;--hexas-blue:#1f6feb;--hexas-bg:#f4f6fa}.room-root{background:var(--hexas-bg);justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.room-card{background:#fff;border-radius:24px;flex-direction:column;gap:28px;width:100%;max-width:520px;padding:36px;display:flex;position:relative;box-shadow:0 30px 70px #00000014}.room-title{text-align:center;letter-spacing:.08em;font-size:32px;font-weight:800}.rules-button{width:32px;height:32px;color:var(--hexas-blue);cursor:pointer;background:#1f6feb14;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;transition:all .18s;display:flex;position:absolute;top:20px;right:24px}.rules-button:hover{background:var(--hexas-blue);color:#fff;transform:scale(1.05)}.rules-button:active{transform:scale(1)}.room-code{text-align:center}.room-code-label{letter-spacing:.12em;color:#777;font-size:14px}.room-id-row{justify-content:center;align-items:center;gap:14px;margin-top:10px;display:flex}.room-id{letter-spacing:6px;font-size:32px;font-weight:800}.copy-button{cursor:pointer;background:#fafafa;border:1px solid #ddd;border-radius:8px;padding:8px 14px;font-weight:600;transition:all .15s}.copy-button:hover{background:#f0f0f0}.players-section{justify-content:space-between;align-items:center;gap:18px;display:flex}.player-box{text-align:center;color:#fff;border-radius:16px;flex:1;padding:20px;transition:all .2s}.player-box.host{background:linear-gradient(135deg,var(--hexas-red),#ff6b6b)}.player-box.guest{background:linear-gradient(135deg,var(--hexas-blue),#4da3ff)}.role{letter-spacing:.12em;opacity:.9;font-size:12px}.name{margin-top:6px;font-size:20px;font-weight:700}.vs{color:#999;font-size:18px;font-weight:800}.time-section h3{margin-bottom:10px;font-size:18px}.mode-option{align-items:flex-start;gap:10px;margin:10px 0;display:flex}.mode-text{flex-direction:column;display:flex}.mode-label{font-size:15px;font-weight:700}.mode-detail{color:#666;margin-top:2px;font-size:12px}.time-header{align-items:center;gap:4px;display:flex}.time-header h3{margin:0}.help-button{border:1px solid var(--hexas-blue);width:1.4em;height:1.4em;color:var(--hexas-blue);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.help-button:hover{opacity:.9}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:90%;max-width:420px;padding:24px;animation:.18s ease-out modalFade;box-shadow:0 25px 60px #00000040}@keyframes modalFade{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-close{cursor:pointer;background:0 0;border:none;font-size:20px}.modal-body{color:#444;margin-top:12px;font-size:14px;line-height:1.7}.modal-body p{margin:8px 0}.start-button{background:var(--hexas-blue);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;height:52px;font-size:18px;font-weight:700;transition:all .2s}.start-button:hover:not(:disabled){transform:scale(1.03)}.start-button:disabled{cursor:not-allowed;background:#c8ccd4}.waiting-text{text-align:center;color:#777;font-weight:500}@media (max-width:480px){.room-card{padding:24px 18px}.players-section{gap:10px}.player-box{padding:14px}.name{font-size:16px}}.game-root{width:100%;height:var(--app-height);background:#f2f3f5;flex-direction:column;display:flex;position:relative;overflow:hidden}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;color:#222;background:#f2f3f5;width:100%;height:100%;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}:root{--time-warning:#c79a2b;--time-danger:#c82020}
