.reversi-container{justify-content:center;align-items:flex-start;width:100%;min-height:100vh;padding:.5rem 1rem;display:flex;position:relative}.reversi-page-content{flex-direction:column;gap:1rem;width:100%;max-width:600px;display:flex;position:relative}.reversi-header{text-align:center}.reversi-title{color:var(--color-primary);margin-bottom:.75rem;font-size:2.5rem;font-weight:700}.reversi-description{color:var(--color-text-muted);font-size:1rem;line-height:1.6}.reversi-game-init{opacity:.15;pointer-events:none;z-index:0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.reversi-game{flex-direction:column;gap:.75rem;width:100%;max-width:500px;display:flex}.game-info{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:.75rem;padding:.75rem 1rem}.info-section{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.player-info{flex-direction:column;flex:1;align-items:center;gap:.25rem;display:flex}.player-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.player-color{color:var(--color-primary);font-size:.9rem;font-weight:600}.player-score{color:var(--color-accent);font-size:1.25rem;font-weight:700}.vs{color:var(--color-text-muted);text-transform:uppercase;font-size:.875rem;font-weight:600}.status-section{text-align:center}.status{flex-direction:column;gap:.25rem;display:flex}.status-text{color:var(--color-accent);font-size:.9rem;font-weight:600}.status-message{color:var(--color-text-muted);font-size:.8rem;font-style:italic}.board-container{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:.75rem;padding:.75rem;position:relative;box-shadow:0 4px 6px #0000001a}.reversi-board{aspect-ratio:1;background:linear-gradient(135deg,#2d5a3d 0%,#1f3f2a 100%);border:1px solid #ffffff0d;border-radius:.75rem;grid-template-columns:repeat(8,1fr);gap:.25rem;padding:.75rem;display:grid;box-shadow:0 8px 24px #00000026,inset 0 1px #ffffff1a}.reversi-cell{aspect-ratio:1;cursor:pointer;background:#4a7c5a;border:1px solid #3d6a4b;border-radius:.25rem;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.reversi-cell:hover{background:#5a8c6a;transform:scale(1.02)}.reversi-cell.available{cursor:pointer;box-shadow:inset 0 0 0 2px var(--color-accent),0 0 12px #1e3a5f59}.reversi-cell.available:hover{box-shadow:inset 0 0 0 2.5px var(--color-accent),0 0 16px #1e3a5f80,0 0 8px #1e3a5f4d;background:#6a9c7a;transform:scale(1.05)}.disc{border-radius:50%;justify-content:center;align-items:center;width:85%;height:85%;transition:all .2s;animation:.3s ease-in-out discPlace;display:flex}.disc.black{background:#1a1a1a;box-shadow:0 2px 4px #0000004d,0 0 8px #00000026}.disc.white{background:#fff;box-shadow:0 2px 4px #0003,0 0 8px #ffffff26}.reversi-cell.available:hover .disc{transform:scale(1.1)}@keyframes discPlace{0%{transform:scale(0)}to{transform:scale(1)}}.game-over{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;background:#000000b3;border-radius:.5rem;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-over-content{background:var(--color-bg-alt);border:2px solid var(--color-accent);text-align:center;border-radius:1rem;padding:2rem;box-shadow:0 8px 16px #0000004d}.game-over-title{color:var(--color-accent);margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.game-over-score{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:1rem}.new-game-button{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:.4rem;align-self:center;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.new-game-button:hover{transform:scale(1.05);box-shadow:0 4px 12px #1e3a5f4d}.setup-overlay{pointer-events:auto;z-index:50;background:0 0;justify-content:center;align-items:center;display:flex;position:relative}.setup-card{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:.75rem;width:100%;max-width:350px;padding:1.25rem}.info-modal{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.info-modal-content{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:.75rem;width:100%;max-width:500px;padding:1.5rem;position:relative}.info-modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;font-size:1.5rem;transition:color .2s;position:absolute;top:1rem;right:1rem}.info-modal-close:hover{color:var(--color-primary)}.info-section-text{text-align:left}.info-section-text h2{color:var(--color-primary);margin-bottom:.75rem;font-size:1.25rem}.info-section-text p{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.9rem;line-height:1.5}.info-section-text strong{color:var(--color-accent)}.help-button{background:var(--color-accent);color:#fff;cursor:pointer;z-index:10;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;transition:all .2s;display:flex;position:absolute;top:.75rem;right:.75rem}.help-button:hover{transform:scale(1.1);box-shadow:0 2px 8px #1e3a5f4d}.tech-stack-section{text-align:center}.tech-stack-section h2{color:var(--color-primary);margin-bottom:.75rem;font-size:1.25rem}.tech-stack-list{flex-wrap:nowrap;justify-content:center;gap:.5rem;display:flex;overflow-x:auto}.tech-badge{background:var(--color-accent);color:#fff;white-space:nowrap;border-radius:9999px;padding:.4rem .8rem;font-size:.8rem;font-weight:600;display:inline-block}@media (max-width:640px){.reversi-container{padding:.25rem .5rem}.reversi-game{gap:.5rem}.reversi-title{font-size:1.75rem}.reversi-description{font-size:.875rem}.reversi-board{border-radius:.5rem;gap:2px;padding:6px}.reversi-cell{border-radius:2px}.game-info{padding:.5rem .75rem}.info-section{gap:.5rem}.player-score{font-size:1.1rem}.board-container{padding:.5rem}.tech-stack-list{flex-wrap:wrap}.info-modal-content{margin:.5rem;padding:1rem}}
