:root { --color-background-light-pink: #ffe0f0; --color-text: #333; --color-game-container-bg: white; --color-game-container-shadow: rgba(0, 0, 0, 0.1); --color-board-bg: #ffefff; --color-board-border: #ffccff; --color-grid-lines: #ff99ff; --color-intersection-hover: rgba(255, 192, 203, 0.3); --color-heart-pink: #FFB6C1; --color-last-move-glow: rgba(255, 255, 0, 0.7); --color-black: #000; --color-white: #fff; --color-success-purple: #e0b0ff; } body { font-family: Arial, sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; margin: 0; background-color: var(--color-background-light-pink); color: var(--color-text); } #game-container { background-color: var(--color-game-container-bg); padding: 20px; border-radius: 12px; box-shadow: 0 0 20px var(--color-game-container-shadow); text-align: center; } .game-board-grid { position: relative; width: calc(14 * 30px); height: calc(14 * 30px); margin-top: 20px; background-color: var(--color-board-bg); border: 2px solid var(--color-board-border); } .game-board-grid::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(to right, var(--color-grid-lines) 1px, transparent 1px), linear-gradient(to bottom, var(--color-grid-lines) 1px, transparent 1px); background-size: 30px 30px; background-position: -1px -1px; pointer-events: none; } .intersection { position: absolute; width: 30px; height: 30px; margin-left: -15px; margin-top: -15px; display: flex; justify-content: center; align-items: center; cursor: pointer; z-index: 1; } .intersection:hover { background-color: var(--color-intersection-hover); } .stone-black-heart, .stone-white-heart { position: relative; width: 24px; height: 24px; margin: auto; overflow: hidden; } .stone-black-heart::before, .stone-black-heart::after, .stone-white-heart::before, .stone-white-heart::after { content: ''; position: absolute; width: 12px; height: 20px; border-radius: 50% 50% 0 0; border: 1px solid var(--color-black); box-sizing: border-box; transform: rotate(-45deg); transform-origin: 0 100%; top: 0; left: 12px; } .stone-black-heart::after, .stone-white-heart::after { left: 0; transform: rotate(45deg); transform-origin: 100% 100%; } .stone-black-heart::before, .stone-black-heart::after { background-color: var(--color-heart-pink); } .stone-white-heart::before, .stone-white-heart::after { background-color: var(--color-white); } .last-move { box-shadow: 0 0 5px 3px var(--color-last-move-glow); } #messages { margin-top: 10px; font-size: 0.9em; color: var(--color-text); } #title-box { font-weight: bold; color: var(--color-text); } #game-link-container { position: relative; display: flex; justify-content: center; align-items: center; height: 40px; margin-top: 20px; } #copy-link-button { position: absolute; display: flex; justify-content: center; align-items: center; transition: opacity 0.3s ease; padding: 8px 15px; border-radius: 5px; white-space: nowrap; } #copy-link-button { background-color: var(--color-board-border); color: var(--color-text); border: none; cursor: pointer; gap: 8px; font-size: 1em; } #copy-link-button:hover { background-color: var(--color-grid-lines); } #copy-link-button.copied-state { background-color: var(--color-success-purple); } img.icon { width: 1em; height: 1em; vertical-align: middle; }