@import"https://fonts.googleapis.com/css2?family=ZCOOL+XiaoWei&family=ZCOOL+QingKe+HuangYou&display=swap";:root{--bg: #0F0808;--surface: #1F1010;--primary: #C13030;--primary-dark: #9A2424;--accent: #D4AF37;--text: #F5E6D3;--text-muted: #C4A574;--text-dark: #0A0A0A;--border: #2A1818;--success: #5C8A4B;--warning: #D4AF37;--danger: #C13030;--radius: 12px;--shadow: 0 4px 6px rgba(0,0,0,.2), 0 1px 3px rgba(0,0,0,.1);--shadow-hover: 0 8px 12px rgba(0,0,0,.3), 0 3px 6px rgba(0,0,0,.15)}body{margin:0;padding:0;background:radial-gradient(ellipse at 30% 20%,#C1303011 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,#D4AF3711 0%,transparent 50%),var(--bg);color:var(--text);font-family:ZCOOL XiaoWei,ZCOOL QingKe HuangYou,KaiTi,楷体,STKaiti,STZhongsong,serif;display:flex;justify-content:center;align-items:center;min-height:100vh;overflow:hidden;position:relative}body:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(circle,rgba(255,255,255,.02) 1px,transparent 1px);background-size:3px 3px;pointer-events:none;z-index:-1}.app-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:900px;min-height:80vh;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;position:relative;overflow:hidden;border:1px solid var(--border)}button{background:var(--primary);color:var(--text);border:none;border-radius:var(--radius);padding:.8rem 1.5rem;font-size:1.1rem;cursor:pointer;transition:all .2s ease-in-out;box-shadow:var(--shadow);display:flex;align-items:center;gap:.5rem;font-family:ZCOOL XiaoWei,serif}button:hover{background:var(--primary-dark);box-shadow:var(--shadow-hover);transform:translateY(-2px)}button:active{transform:translateY(0);box-shadow:var(--shadow)}button.active{background:var(--accent);color:var(--text-dark)}.back-button{background:none;border:1px solid var(--border);color:var(--text-muted);padding:.6rem 1rem;font-size:1rem;box-shadow:none}.back-button:hover{background:#ffffff0d;color:var(--text);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.start-screen{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%;padding:2rem}.game-title{font-family:ZCOOL QingKe HuangYou,STZhongsong,serif;font-size:3.5rem;color:var(--accent);text-shadow:0 0 10px rgba(212,175,55,.5);margin-bottom:1rem;letter-spacing:2px}.cloud-status{font-size:.9rem;color:var(--text-muted);margin-top:-1rem;margin-bottom:1rem}.game-mode-selection{text-align:center;margin-bottom:1.5rem}.game-mode-selection h3{font-size:1.5rem;color:var(--text);margin-bottom:1rem}.mode-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}.mode-buttons button{background:var(--border);color:var(--text-muted);font-size:.95rem;padding:.6rem 1.2rem;box-shadow:inset 0 1px 3px #0003}.mode-buttons button:hover{background:#ffffff14;color:var(--text)}.mode-buttons button.active{background:var(--primary);color:var(--text);box-shadow:var(--shadow)}.start-button{background:var(--primary);font-size:1.3rem;padding:1rem 2.5rem;margin-top:1rem}.shop-button{background:var(--accent);color:var(--text-dark);font-size:1.1rem;padding:.8rem 2rem}.score-display{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;color:var(--text-muted);margin-top:1.5rem}.game-container{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:800px;padding:1rem}.game-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem 1rem;background:var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.player-info{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;color:var(--text)}.current-player-piece{width:28px;height:28px;vertical-align:middle}.ai-thinking{font-size:.9rem;color:var(--text-muted);margin-left:.5rem;animation:pulse 1.5s infinite alternate}@keyframes pulse{0%{opacity:.6}to{opacity:1}}.score-info{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--text-muted)}.gobang-board{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);width:min(750px,90vw);height:min(750px,90vw);border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;position:relative;box-shadow:inset 0 0 15px #00000080}.board-wood{background:#5a3a2b;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.1) 1px,transparent 1px);background-size:calc(100% / 15) calc(100% / 15);background-origin:content-box;background-position:center center}.board-wood:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch" result="noise"></feTurbulence><feColorMatrix in="noise" type="saturate" values="0"></feColorMatrix><feComponentTransfer><feFuncA type="linear" slope="0.5" intercept="-0.2"></feFuncA></feComponentTransfer></filter><rect width="100" height="100" fill="%235A3A2B"></rect><rect width="100" height="100" filter="url(%23noiseFilter)" opacity="0.6"></rect></svg>') repeat;background-size:100px 100px;opacity:.8;mix-blend-mode:overlay}.board-stone{background:#3a4750;background-image:linear-gradient(to right,rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.1) 1px,transparent 1px);background-size:calc(100% / 15) calc(100% / 15);background-origin:content-box;background-position:center center}.board-stone:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="4" stitchTiles="stitch" result="noise"></feTurbulence><feColorMatrix in="noise" type="saturate" values="0"></feColorMatrix><feComponentTransfer><feFuncA type="linear" slope="0.4" intercept="-0.1"></feFuncA></feComponentTransfer></filter><rect width="100" height="100" fill="%233A4750"></rect><rect width="100" height="100" filter="url(%23noiseFilter)" opacity="0.7"></rect></svg>') repeat;background-size:100px 100px;opacity:.8;mix-blend-mode:overlay}.board-checker{background-color:#777;background-image:linear-gradient(45deg,#555 25%,transparent 25%),linear-gradient(-45deg,#555 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#555 75%),linear-gradient(-45deg,transparent 75%,#555 75%);background-size:40px 40px;background-position:0 0,0 20px,20px -20px,-20px 0px}.board-sakura{background:#f8e0e6;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><defs><path id="petal" d="M50 0 Q60 20 70 50 Q60 80 50 100 Q40 80 30 50 Q40 20 50 0z" fill="%23F4C2C2" opacity="0.7"/><filter id="blur"><feGaussianBlur stdDeviation="1"/></filter></defs><g transform="scale(0.2) translate(100 100)"><use href="%23petal" transform="rotate(0 50 50)"/><use href="%23petal" transform="rotate(72 50 50)"/><use href="%23petal" transform="rotate(144 50 50)"/><use href="%23petal" transform="rotate(216 50 50)"/><use href="%23petal" transform="rotate(288 50 50)"/></g><g transform="scale(0.15) translate(200 0)"><use href="%23petal" transform="rotate(30 50 50)"/><use href="%23petal" transform="rotate(102 50 50)"/><use href="%23petal" transform="rotate(174 50 50)"/><use href="%23petal" transform="rotate(246 50 50)"/><use href="%23petal" transform="rotate(318 50 50)"/></g><g transform="scale(0.1) translate(0 200)"><use href="%23petal" transform="rotate(60 50 50)"/><use href="%23petal" transform="rotate(132 50 50)"/><use href="%23petal" transform="rotate(204 50 50)"/><use href="%23petal" transform="rotate(276 50 50)"/><use href="%23petal" transform="rotate(348 50 50)"/></g></svg>');background-size:200px 200px;background-blend-mode:multiply}.board-row{display:contents}.board-cell{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative;box-sizing:border-box}.gobang-board:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:calc(100% / 14) calc(100% / 14);background-position:calc(100% / 28) calc(100% / 28);pointer-events:none;z-index:1}.board-cell:not(.occupied):hover:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;height:80%;border-radius:50%;background-color:#ffffff26;pointer-events:none;z-index:2}.game-controls{margin-top:1.5rem}.restart-button{background:var(--warning);color:var(--text-dark)}.game-over-screen{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.game-over-title{font-family:ZCOOL QingKe HuangYou,STZhongsong,serif;font-size:3rem;color:var(--primary);text-shadow:0 0 8px rgba(193,48,48,.6);margin-bottom:1rem}.winner-display{display:flex;flex-direction:column;align-items:center;gap:.8rem;font-size:1.8rem;color:var(--text);margin-bottom:1.5rem}.winner-piece{margin-top:.5rem}.game-over-actions{display:flex;gap:1rem;margin-top:1rem}.play-again-button{background:var(--primary)}.back-to-menu-button{background:var(--border);color:var(--text-muted)}.shop-screen{width:100%;padding:1rem}.shop-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.shop-header h2{font-family:ZCOOL QingKe HuangYou,STZhongsong,serif;font-size:2rem;color:var(--accent);display:flex;align-items:center;gap:.8rem}.current-score{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;color:var(--text-muted)}.shop-items-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem}.shop-item-card{background:var(--border);border-radius:var(--radius);padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.8rem;box-shadow:var(--shadow);transition:all .2s ease-in-out;border:1px solid rgba(255,255,255,.05)}.shop-item-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-5px)}.item-preview{display:flex;gap:10px;margin-bottom:.5rem}.item-preview svg{width:50px;height:50px}.board-preview{width:60px;height:60px;border-radius:var(--radius);display:flex;justify-content:center;align-items:center;font-size:2rem;overflow:hidden;box-shadow:inset 0 0 5px #0000004d}.shop-item-card h3{font-size:1.3rem;color:var(--text);margin:0}.buy-button{background:var(--success);color:var(--text-dark);font-size:.9rem;padding:.6rem 1rem}.equip-button{background:var(--primary-dark);font-size:.9rem;padding:.6rem 1rem}.equip-button.equipped{background:var(--text-muted);color:var(--text-dark);cursor:default}.equip-button.equipped:hover{background:var(--text-muted);transform:none;box-shadow:var(--shadow)}.toast-message{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:#000000b3;color:var(--text);padding:.8rem 1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);z-index:1000;font-size:1rem;white-space:nowrap}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg);color:var(--text);font-size:1.2rem;z-index:9999}.spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid var(--accent);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}.spinner.small{width:20px;height:20px;border-width:3px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.saving-indicator{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem}@media (max-width: 768px){.game-title{font-size:2.5rem}.app-container{padding:1rem;min-height:95vh}.mode-buttons{flex-direction:column}.gobang-board{width:min(600px,95vw);height:min(600px,95vw)}.shop-items-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.shop-header h2{font-size:1.5rem}}@media (max-width: 480px){.game-title{font-size:2rem}button{padding:.6rem 1rem;font-size:1rem}.start-button{padding:.8rem 1.8rem;font-size:1.1rem}.shop-button{padding:.7rem 1.5rem;font-size:1rem}.game-header{flex-direction:column;gap:.5rem;text-align:center}.game-over-title{font-size:2rem}.winner-display{font-size:1.4rem}.game-over-actions{flex-direction:column}}
