html{-moz-text-size-adjust:none;text-size-adjust:none;touch-action:pan-y;overscroll-behavior-x:none;background:linear-gradient(#edfaff 0%,#d4f2ff 48%,#c6ebff 100%);font-size:max(16px,min(26.6667vw,200px));overflow-x:hidden}:root{--board-size:15;--line-color:#987444;--board-width:min(92vw,70svh,6.4rem);--board-padding:calc(var(--board-width)*.048);--grid-gap:calc((var(--board-width) - var(--board-padding)*2)/(var(--board-size) - 1));--stone-size:calc(var(--grid-gap)*.78);--hit-size:calc(var(--grid-gap)*.98)}*{box-sizing:border-box}body{min-height:100svh;background:linear-gradient(#dff6ff 0%,#bfe8ff 100%);min-height:100dvh;margin:0}#root{min-height:100svh;min-height:100dvh}.gomoku-page{isolation:isolate;color:#1f2937;min-height:100svh;background:radial-gradient(circle at 18% 16%,#ffffffeb 0%,#fff0 24%),radial-gradient(circle at 72% 18%,#93dcff66 0%,#93dcff00 28%),radial-gradient(circle at 62% 64%,#ffffffe0 0%,#fff0 22%),radial-gradient(circle at 16% 84%,#a5e4ff6b 0%,#a5e4ff00 26%),linear-gradient(#edfaff 0%,#d4f2ff 48%,#c6ebff 100%);flex-direction:column;justify-content:flex-start;align-items:center;gap:.1rem;min-height:100dvh;padding:.12rem;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;display:flex;position:relative;overflow:hidden}.gomoku-page:before,.gomoku-page:after{content:"";pointer-events:none;z-index:-1;position:absolute;top:-8%;bottom:-8%;left:-8%;right:-8%}.gomoku-page:before{filter:blur(34px);opacity:.95;background:radial-gradient(at 12% 20%,#fffffff5 0%,#fff0 30%),radial-gradient(at 86% 10%,#8ad7ff7a 0%,#8ad7ff00 26%),radial-gradient(at 78% 46%,#c1f1ffb8 0%,#c1f1ff00 24%),radial-gradient(at 26% 56%,#ffffffeb 0%,#fff0 22%),radial-gradient(at 70% 72%,#ffffffdb 0%,#fff0 24%),radial-gradient(at 22% 92%,#96e0ff6b 0%,#96e0ff00 22%)}.gomoku-page:after{mix-blend-mode:screen;opacity:.45;background-image:radial-gradient(#ffffff61 .7px,#0000 .9px),repeating-linear-gradient(26deg,#fff0 0 .16rem,#ffffff24 .2rem,#fff0 .28rem);background-size:5px 5px,100% 100%}.title{align-items:center;gap:.05rem;margin:0;font-size:.24rem;line-height:1.2;display:inline-flex}.title-logo-link{border-radius:.06rem;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.title-logo-link:focus-visible{outline-offset:2px;outline:2px solid #1d4ed8}.title-logo-link:hover .title-logo{transform:scale(1.04)}.title-logo{object-fit:contain;border-radius:.05rem;flex:none;width:.26rem;height:.26rem;transition:transform .15s}.toolbar{width:var(--board-width);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.08rem;max-width:100%;display:flex}.status{white-space:nowrap;margin:0;font-size:.13rem;font-weight:600;line-height:1.4}.side-avatars{width:var(--board-width);grid-template-columns:1fr auto 1fr;align-items:center;gap:.08rem;max-width:100%;display:grid}.vs-badge{letter-spacing:.04em;color:#0f172a;background:radial-gradient(circle at 30% 28%,#fff 0%,#dbeafe 58%,#bfdbfe 100%);border:1px solid #3b82f657;border-radius:50%;justify-content:center;align-items:center;width:.38rem;height:.38rem;font-size:.11rem;font-weight:800;display:inline-flex;box-shadow:0 6px 18px #2563eb2e}.side-avatar-card{background:#ffffffb8;border:1px solid #94a3b847;border-radius:.12rem;align-items:center;gap:.06rem;min-width:0;padding:.06rem .08rem;display:flex;box-shadow:0 6px 18px #0f172a14}.side-avatar-card.active{border-color:#1d4ed873;box-shadow:0 8px 22px #1d4ed838}.side-avatar-card.winner{border-color:#f59e0b9e;box-shadow:0 8px 20px #f59e0b42}.avatar-face{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:.34rem;height:.34rem;font-size:.13rem;font-weight:700;display:inline-flex}.avatar-user{background:linear-gradient(135deg,#2563eb 0%,#0284c7 100%)}.avatar-ai{background:linear-gradient(135deg,#0f766e 0%,#14b8a6 100%)}.avatar-meta{min-width:0}.avatar-name,.avatar-sub{white-space:nowrap;margin:0}.avatar-name{color:#0f172a;font-size:.12rem;font-weight:700;line-height:1.15}.avatar-sub{color:#334155;margin-top:.01rem;font-size:.1rem;line-height:1.1}.btn{color:#fff;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#2563eb;border:0;border-radius:.08rem;height:.22rem;padding:0 .08rem;font-size:.12rem;line-height:.22rem;transition:background-color .2s}.btn:hover{background:#1d4ed8}.btn[data-disabled=true]{cursor:not-allowed;opacity:.55;background:#93b4ea}.btn[data-disabled=true]:hover{background:#93b4ea}.reset-btn{color:#fff;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#2563eb;border:0;border-radius:.08rem;justify-content:center;align-items:center;height:.22rem;padding:.06rem .1rem;font-size:.12rem;line-height:.22rem;transition:background-color .2s;display:inline-flex}.reset-btn:hover{background:#1d4ed8}.reset-btn:focus-visible{outline-offset:2px;outline:2px solid #1d4ed8}.share-btn{background:#0f766e}.share-btn:hover{background:#0e665f}.wechat-btn{background:#16a34a}.wechat-btn:hover{background:#15803d}.share-notice{width:var(--board-width);color:#0f172a;max-width:100%;margin:-.02rem 0 0;font-size:.11rem;line-height:1.5}.board{width:var(--board-width);height:var(--board-width);isolation:isolate;background:#e2bc74;flex:none;position:relative;overflow:visible;box-shadow:0 0 0 2px #8b5e34,0 4px 14px #0000001f}.inner{left:var(--board-padding);top:var(--board-padding);width:calc((var(--board-size) - 1)*var(--grid-gap));height:calc((var(--board-size) - 1)*var(--grid-gap));pointer-events:none;justify-content:space-between;align-items:stretch;margin:0;display:flex;position:absolute}.lineItem{border-bottom:1px solid var(--line-color);width:100%;height:0}.lineItem2{border-right:1px solid var(--line-color);width:0;height:100%}.star-point{width:calc(var(--grid-gap)*.2);height:calc(var(--grid-gap)*.2);pointer-events:none;z-index:0;background:#6b4c2e;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.point{width:var(--hit-size);height:var(--hit-size);cursor:pointer;z-index:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;place-items:center;margin:0;padding:0;display:grid;position:absolute;overflow:visible;transform:translate(-50%,-50%)}.point[data-blocked=true]{cursor:default}.point:focus-visible{outline-offset:2px;border-radius:50%;outline:2px solid #2563eb}.stone{width:var(--stone-size);height:var(--stone-size);pointer-events:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.stone-step{font-size:calc(var(--stone-size)*.45);letter-spacing:-.02em;text-shadow:0 1px 1px #0000002e;font-weight:700;line-height:1}.stone-step-black{color:#f8fafc}.stone-step-white{color:#0f172a;text-shadow:0 1px #ffffffb3}.stone.black{background:#111 radial-gradient(circle at 30% 30%,#666 0%,#222 45%,#111 100%);box-shadow:inset -1px -2px 4px #ffffff14,0 1px 3px #00000059}.stone.white{background:#f5f5f5 radial-gradient(circle at 30% 30%,#fff 0%,#efefef 55%,#d9d9d9 100%);border:1px solid #bdbdbd;box-shadow:inset 0 1px 1px #ffffffd9,0 1px 3px #0000002e}.stone.winning{animation:.9s ease-in-out infinite winPulse;box-shadow:0 0 0 2px #f59e0b,0 0 12px #f59e0b99,0 0 24px #f59e0b59}.stone.ai-last{box-shadow:0 0 0 2px #0ea5e9,0 0 10px #0ea5e973}.stone.ai-last.winning{box-shadow:0 0 0 2px #f59e0b,0 0 12px #f59e0b99,0 0 24px #f59e0b59,0 0 0 4px #0ea5e97a}@keyframes winPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.preview-marker{width:calc(var(--stone-size)*.72);height:calc(var(--stone-size)*.72);pointer-events:none;background:#2563eb24;border:2px dashed #2563eb;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffffa6}.point[data-locked=true] .preview-marker{animation:.9s ease-in-out infinite lockPulse}@keyframes lockPulse{0%{opacity:.65;transform:scale(1.1)}50%{opacity:1;transform:scale(1.3)}to{opacity:.65;transform:scale(1.1)}}@media (max-width:700px){:root{--board-width:min(94vw,62svh);--board-padding:calc(var(--board-width)*.052)}.gomoku-page{gap:.08rem;padding:.1rem}.side-avatar-card{padding:.05rem .06rem}.vs-badge{width:.34rem;height:.34rem;font-size:.1rem}.avatar-face{width:.3rem;height:.3rem;font-size:.12rem}.title{font-size:.2rem}.title-logo{width:.22rem;height:.22rem}.reset-btn{padding:.05rem .09rem;font-size:.12rem}}.gomoku-page,.title,.status,.toolbar,.board,.point,.reset-btn,.stone{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.intro{opacity:.8;width:100%;margin:0;font-size:.16rem}.icp-record{text-align:center;color:#0f172ab3;width:100%;margin:.16rem 0 0;font-size:.11rem}.icp-record a{color:inherit;text-decoration:none}.icp-record a:hover{text-decoration:underline}.public-security-record{margin-top:.04rem}.public-security-record a{align-items:center;gap:.03rem;display:inline-flex}.public-security-logo{flex:none;width:.13rem;height:.13rem}.poster-modal{z-index:30;place-items:center;padding:.12rem;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.poster-modal-backdrop{background:#0f172ab8;position:absolute;top:0;bottom:0;left:0;right:0}.poster-modal-card{background:#f8fdff;border-radius:.12rem;flex-direction:column;align-items:center;gap:.08rem;width:min(90vw,4.4rem);max-height:min(88vh,8rem);padding:.1rem;display:flex;position:relative;overflow:auto;box-shadow:0 16px 48px #02061759}.poster-modal-title{color:#0f172a;margin:0;font-size:.15rem}.poster-modal-tip{color:#0f172ab8;margin:0;font-size:.11rem}.poster-preview-image{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:.08rem;width:min(100%,3.8rem);height:auto;box-shadow:0 8px 26px #0f172a2e}.poster-modal-actions{justify-content:center;gap:.08rem;width:100%;display:flex}.wechat-guide-card{text-align:center;background:#f8fdff;border-radius:.12rem;flex-direction:column;align-items:center;gap:.1rem;width:min(86vw,3.2rem);padding:.14rem .12rem;display:flex;position:relative;box-shadow:0 16px 48px #02061759}