:root{--cell: clamp(26px, calc((100vw - 24px - 6*var(--gap))/7), 92px)}@keyframes neonPulse{0%,to{box-shadow:0 0 8px #00e5ff33,0 0 20px #00e5ff14}50%{box-shadow:0 0 16px #00e5ff59,0 0 40px #00e5ff26}}@keyframes borderGlow{0%,to{border-color:#00e5ff4d}50%{border-color:#ff2d7566}}@keyframes floatUpDown{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shimmer{0%{background-position:200% center}to{background-position:-200% center}}@keyframes discDrop{0%{transform:translateY(-800px);opacity:0;filter:drop-shadow(0 0 20px rgba(0,229,255,.8))}60%{transform:translateY(20px);opacity:1;filter:drop-shadow(0 0 10px rgba(0,229,255,.4))}80%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes discFlip{0%{transform:rotateY(0) scale(1);filter:brightness(1)}50%{transform:rotateY(90deg) scale(1.15);filter:brightness(1.5) drop-shadow(0 0 15px rgba(0,255,136,.5))}to{transform:rotateY(180deg) scale(1);filter:brightness(1)}}@keyframes winPulse{0%,to{transform:scale(1);box-shadow:0 0 20px #ff2d7580}50%{transform:scale(1.1);box-shadow:0 0 40px #ffd700cc;border-color:var(--gold)}}@keyframes glitch{0%,to{text-shadow:none;transform:translate(0)}10%{text-shadow:2px 0 var(--cyan),-2px 0 var(--pink);transform:translate(-2px,1px)}20%{text-shadow:-2px 0 var(--cyan),2px 0 var(--pink);transform:translate(2px,-1px)}30%{text-shadow:none;transform:translate(0)}}.app{width:100%;max-width:min(1120px,100vw);position:relative;cursor:crosshair}.crt-scanlines{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.03),rgba(0,0,0,.03) 1px,transparent 1px,transparent 2px);mix-blend-mode:overlay}.app-wide{max-width:min(1220px,100vw)}.win-banner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:hidden}.win-banner-slash{position:absolute;width:120vw;height:200px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.8) 10%,rgba(20,0,40,.95) 50%,rgba(0,0,0,.8) 90%,transparent);box-shadow:0 0 40px #00e5ff66,inset 0 0 20px #ff2d754d;display:flex;align-items:center;justify-content:center;transform:rotate(-15deg) scaleY(0);animation:bannerSlash 1.8s cubic-bezier(.1,.9,.2,1) forwards}.win-banner-slash:before,.win-banner-slash:after{content:"";position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),var(--pink),transparent)}.win-banner-slash:before{top:0}.win-banner-slash:after{bottom:0}.win-banner-text{font-family:var(--font-heading);font-size:6rem;font-weight:800;letter-spacing:8px;text-transform:uppercase;font-style:italic;filter:drop-shadow(0 0 20px currentColor) drop-shadow(4px 4px 0px rgba(0,0,0,.8));opacity:0;animation:bannerTextZoom 1.2s .2s cubic-bezier(.1,.9,.2,1) forwards}@keyframes bannerSlash{0%{transform:rotate(-15deg) scaleY(0) translateY(-50px);opacity:0}15%{transform:rotate(-15deg) scaleY(1.2) translateY(0);opacity:1;filter:brightness(2)}25%{transform:rotate(-15deg) scaleY(1);filter:brightness(1)}85%{transform:rotate(-15deg) scaleY(1);opacity:1}to{transform:rotate(-15deg) scaleY(0) translateY(50px);opacity:0}}@keyframes bannerTextZoom{0%{opacity:0;transform:scale(.5) skew(-15deg);filter:blur(10px)}20%{opacity:1;transform:scale(1.2) skew(-15deg);filter:blur(0)}to{opacity:1;transform:scale(1) skew(-15deg)}}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;box-shadow:0 0 12px #00e5ff40}.home{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 80px);padding:16px 0}.home-card{width:min(96vw,1120px);text-align:left}.home-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:18px;align-items:end;margin-bottom:20px}.home-title{margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.05;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1.5px}.home-tagline{margin:0 0 18px;font-size:1.05rem;color:var(--muted);line-height:1.5}.home-steps{margin:0 0 14px;color:var(--muted);font-size:.9rem}.home-pick-title{margin:0 0 18px;font-size:clamp(1.4rem,3vw,2rem);text-align:center;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:2px;background:linear-gradient(135deg,var(--cyan),var(--pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.game-pick-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 18px;border-radius:18px;border:2px solid rgba(0,229,255,.2);background:radial-gradient(circle at top right,rgba(255,45,117,.12),transparent 50%),linear-gradient(160deg,rgba(255,150,50,.08),rgba(255,45,117,.1),var(--bg2));cursor:pointer;transition:transform .22s ease,border-color .22s,box-shadow .3s;text-align:center;color:var(--ink);position:relative;overflow:hidden}.game-pick-card:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:18px;background:linear-gradient(135deg,var(--pink),var(--cyan),var(--gold));z-index:-1;opacity:0;transition:opacity .3s}.game-pick-card:hover{transform:translateY(-6px) scale(1.02);border-color:var(--cyan);box-shadow:0 8px 30px #00e5ff33,0 0 20px #ff2d751a}.game-pick-card:hover:after{opacity:.15}.game-pick-card-reversi{background:radial-gradient(circle at top right,rgba(0,255,136,.12),transparent 50%),linear-gradient(160deg,rgba(0,255,136,.08),rgba(0,229,255,.06),var(--bg2));border-color:#0f83}.game-pick-card-reversi:hover{border-color:var(--emerald);box-shadow:0 8px 30px #0f83,0 0 20px #00e5ff1a}.game-pick-icon{font-size:2.4rem;filter:drop-shadow(0 0 6px rgba(0,229,255,.3))}.game-pick-name{font-size:1.3rem;font-weight:700;font-family:var(--font-heading);letter-spacing:1px;text-transform:uppercase;color:var(--ink)}.game-pick-desc{font-size:.88rem;color:var(--muted);line-height:1.45}.back-link{display:inline-flex;align-items:center;gap:4px;padding:0;margin:0 0 14px;border:none;background:none;color:var(--cyan);font-size:.92rem;font-weight:600;cursor:pointer;transition:color .2s,filter .2s}.back-link:hover{color:var(--pink);filter:drop-shadow(0 0 4px rgba(255,45,117,.3));text-decoration:underline}.home-game-title{margin:0 0 8px;font-size:clamp(1.4rem,3vw,2rem);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px}.play-grid-reversi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.start-btn-reversi{background:linear-gradient(135deg,var(--emerald),#00cc70,var(--cyan));border-color:transparent;box-shadow:0 4px 20px #00ff8840}.start-btn-reversi:hover{box-shadow:0 6px 30px #00ff8859,0 0 20px #00e5ff26;transform:translateY(-2px)}.start-btn-demo{background:var(--bg2);border-color:var(--grid);color:var(--ink)}.start-btn-demo:hover{background:var(--panel)}.section-label{font-size:.82rem;text-transform:uppercase;letter-spacing:1.8px;color:var(--muted);margin:18px 0 10px;font-weight:700;font-family:var(--font-heading)}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.mode-btn{padding:12px 8px;border-radius:12px;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);font-weight:700;font-family:var(--font-body);cursor:pointer;transition:border-color .2s,box-shadow .3s,transform .15s}.mode-btn.active{border-color:var(--cyan);box-shadow:0 0 0 2px #00e5ff33,0 0 12px #00e5ff1a;background:linear-gradient(135deg,#00e5ff14,#a855f70d)}.mode-btn:hover{transform:translateY(-2px);border-color:var(--cyan)}.section-label-inline{margin-top:0}.home-pill-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.home-pill{padding:8px 12px;border-radius:999px;border:1px solid var(--panel-border);background:color-mix(in srgb,var(--panel) 85%,transparent);font-size:.82rem;font-weight:700;color:var(--muted)}.game-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.game-card{padding:18px;border-radius:18px;border:1px solid var(--panel-border);background:radial-gradient(circle at top right,color-mix(in srgb,var(--blue) 12%,transparent),transparent 38%),linear-gradient(180deg,color-mix(in srgb,var(--panel) 88%,transparent),color-mix(in srgb,var(--bg2) 92%,transparent));box-shadow:var(--shadow)}.game-card-reversi{background:radial-gradient(circle at top right,color-mix(in srgb,var(--green) 18%,transparent),transparent 40%),linear-gradient(180deg,color-mix(in srgb,var(--panel) 88%,transparent),color-mix(in srgb,var(--bg2) 92%,transparent))}.game-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.game-card-header h3{margin:0;font-size:1.45rem}.game-badge{padding:8px 12px;border-radius:999px;background:color-mix(in srgb,var(--blue) 14%,var(--bg2));border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);color:var(--blue);font-size:.78rem;font-weight:700;letter-spacing:.4px;white-space:nowrap}.game-card-reversi .game-badge{background:color-mix(in srgb,var(--green) 14%,var(--bg2));border-color:color-mix(in srgb,var(--green) 35%,transparent);color:var(--green)}.game-copy{margin:0 0 14px;color:var(--muted);line-height:1.55}.home-tip-card{padding:14px;border-radius:14px;background:color-mix(in srgb,var(--panel) 86%,transparent);border:1px solid var(--panel-border);margin-bottom:14px}.home-tip-card strong{display:block;margin-bottom:6px}.home-tip-card p{margin:0;color:var(--muted);line-height:1.45}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:18px}.level-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:8px}.level-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;border:2px solid var(--grid);background:var(--bg2);color:var(--ink);cursor:pointer;transition:border-color .2s,transform .15s,box-shadow .3s;font-family:var(--font-body)}.level-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00e5ff1f}.level-btn.active{border-color:var(--cyan);background:linear-gradient(135deg,#00e5ff1a,#a855f70f);box-shadow:0 0 0 3px #00e5ff26,0 0 16px #00e5ff14}.level-icon{font-size:1.1rem;font-weight:700}.level-name{font-weight:700;font-size:.95rem;font-family:var(--font-heading);letter-spacing:.5px}.level-desc{font-size:.75rem;color:var(--muted);line-height:1.3}.level-desc.selected{margin:0 0 12px;min-height:18px}.start-btn{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--cyan),var(--blue),var(--violet));color:#fff;font-size:1rem;font-weight:700;font-family:var(--font-heading);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;margin-bottom:8px;box-shadow:0 4px 20px #00e5ff40;transition:box-shadow .3s,transform .15s}.start-btn:hover{box-shadow:0 6px 30px #00e5ff59,0 0 20px #a855f726;transform:translateY(-2px)}.play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}.play-grid-compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.play-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border-radius:12px;font-size:1rem;font-weight:600;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);cursor:pointer;transition:transform .15s,box-shadow .3s;font-family:var(--font-body)}.play-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00e5ff26}.play-btn.primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;border-color:transparent;box-shadow:0 4px 16px #00e5ff33}.play-btn.primary:hover{box-shadow:0 6px 24px #00e5ff4d}.play-btn.reversi-primary{background:linear-gradient(135deg,var(--emerald),var(--cyan));border-color:transparent;box-shadow:0 4px 16px #0f83}.play-btn.reversi-primary:hover{box-shadow:0 6px 24px #00ff884d}.play-emoji{font-size:1rem;letter-spacing:.4px}.home-footer{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:10px;border-top:1px solid var(--panel-border)}.sound-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer}.sound-toggle input{accent-color:var(--blue)}.modebar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;margin:8px 0 6px}.modebar button{padding:8px 14px;border-radius:10px;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-body);transition:background .15s,transform .1s,box-shadow .2s}.modebar button:hover{background:var(--panel);transform:translateY(-1px);box-shadow:0 2px 10px #00e5ff1a}.level-badge{padding:6px 14px;border-radius:10px;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#00e5ff1f,#a855f714);color:var(--cyan);border:1px solid var(--cyan);letter-spacing:.8px;font-family:var(--font-heading);text-transform:uppercase}.status-bar{text-align:center;margin:4px 0 6px;font-size:.95rem;color:var(--muted);font-weight:600;font-family:var(--font-heading);letter-spacing:.5px}.board-wrap{position:relative;margin:0 auto}.board{display:grid;grid-template-columns:repeat(7,var(--cell));gap:var(--gap);padding:8px;background:var(--panel);border:2px solid rgba(0,229,255,.15);border-radius:16px;box-shadow:var(--shadow),0 0 24px #00e5ff0f;width:calc(7 * var(--cell) + 6 * var(--gap));max-width:100%}.col{display:grid;grid-template-rows:repeat(6,var(--cell));gap:var(--gap);cursor:pointer}.cell{width:var(--cell);height:var(--cell);border-radius:14px;background:radial-gradient(circle at 30% 30%,var(--hole),var(--grid));position:relative;display:flex;align-items:center;justify-content:center}.cell:hover{outline:2px dashed var(--cyan);outline-offset:2px}.disc{width:calc(var(--cell) - 8px);height:calc(var(--cell) - 8px);border-radius:999px;box-shadow:inset 0 4px 10px #00000040,0 2px 6px #0003;transition:transform .2s ease,box-shadow .2s ease}.disc-new{animation:discDrop .4s cubic-bezier(.25,.46,.45,.94) forwards}.disc-win{animation:winPulse 1s ease-in-out infinite;z-index:6}.disc.yellow{background:radial-gradient(circle at 32% 28%,#fff4c2,gold);border:2px solid #b8960a;box-shadow:inset 0 4px 10px #00000026,0 0 14px #ffd70073,0 0 28px #ffd70026}.disc.red{background:radial-gradient(circle at 32% 28%,#ff8aab,#ff2d75);border:2px solid #c4174f;box-shadow:inset 0 4px 10px #00000026,0 0 14px #ff2d7573,0 0 28px #ff2d7526}.win-line{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;width:100%;height:100%}@keyframes winDraw{0%{stroke-dashoffset:600}to{stroke-dashoffset:0}}.win-line-anim{stroke-dasharray:600;animation:winDraw .6s ease-out forwards}.stats-bar{display:flex;gap:16px;justify-content:center;margin:10px 0 4px;font-size:.9rem;color:var(--muted);font-weight:600;font-family:var(--font-heading);letter-spacing:.5px}.reversi-page{display:grid;gap:0;padding:4px 0 16px}.rv-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 4px;margin-bottom:2px}.rv-topbar-left,.rv-topbar-right{display:flex;align-items:center;gap:8px}.rv-title{margin:0;font-size:1.15rem;font-weight:700;letter-spacing:1px;font-family:var(--font-heading);text-transform:uppercase}.rv-badge{padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;font-family:var(--font-heading);background:linear-gradient(135deg,#00ff881f,#00e5ff14);border:1px solid rgba(0,255,136,.3);color:var(--emerald)}.rv-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);cursor:pointer;font-size:.88rem;transition:background .15s,transform .12s,border-color .15s,box-shadow .2s}.rv-icon-btn:hover{background:var(--panel);transform:translateY(-1px);box-shadow:0 2px 10px #00e5ff1a}.rv-icon-btn.rv-btn-active{border-color:var(--emerald);background:linear-gradient(135deg,#00ff881a,#00e5ff0f);color:var(--emerald);box-shadow:0 0 10px #00ff881f}.rv-scores{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.rv-score{display:inline-flex;align-items:center;gap:5px;font-size:1.1rem;font-weight:700}.rv-score-sep{color:var(--muted);font-weight:400}.rv-score-dot{width:12px;height:12px;border-radius:999px}.rv-dot-black{background:#1e293b;box-shadow:inset 0 1px 3px #ffffff1f}.rv-dot-white{background:#f1f5f9;border:1px solid rgba(15,23,42,.18)}.rv-status{text-align:center;margin:0 0 6px;padding:5px 14px;font-size:.84rem;font-weight:700;color:var(--muted);letter-spacing:.8px;font-family:var(--font-heading);text-transform:uppercase}.rv-body{display:grid;grid-template-columns:1fr;gap:14px;justify-items:center}.rv-body-with-guide{grid-template-columns:minmax(0,1fr) 260px;justify-items:stretch;align-items:start}.rv-board-area{display:grid;gap:8px;justify-items:center;min-width:0}.rv-coach{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:12px;background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--panel-border);width:100%;max-width:100%;box-sizing:border-box}.rv-coach-label{flex-shrink:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--emerald);font-family:var(--font-heading)}.rv-coach-text{font-size:.86rem;color:var(--muted);line-height:1.45}.rv-guide{display:grid;gap:12px;padding:16px;border-radius:14px;background:var(--panel);border:1px solid rgba(0,255,136,.15);box-shadow:var(--shadow),0 0 16px #00ff880a;font-size:.86rem}.rv-guide-title{margin:0;font-size:.95rem;font-weight:700;font-family:var(--font-heading);letter-spacing:.5px;text-transform:uppercase}.rv-guide-text{margin:0;color:var(--muted);line-height:1.5}.rv-guide-section{padding-top:10px;border-top:1px solid var(--panel-border)}.rv-guide-section h4{margin:0 0 8px;font-size:.84rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.rv-guide-list{margin:0;padding-left:16px;color:var(--muted);line-height:1.55;display:grid;gap:5px}.rv-guide-list strong{color:var(--ink)}.reversi-board-shell{display:grid;gap:4px;width:100%;max-width:min(72vh,580px)}.reversi-grid-wrap{display:grid;grid-template-columns:20px minmax(0,1fr);gap:4px;align-items:stretch}.reversi-axis{color:var(--muted);font-size:.72rem;font-weight:700;opacity:.7}.reversi-axis-top{display:grid;grid-template-columns:20px repeat(8,minmax(0,1fr));gap:4px;padding:0 10px}.reversi-axis-top span,.reversi-axis-side span{display:grid;place-items:center}.reversi-axis-side{display:grid;grid-template-rows:repeat(8,minmax(0,1fr));gap:4px}.reversi-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:10px;border-radius:16px;border:2px solid rgba(0,255,136,.2);background:linear-gradient(170deg,#06321ef7,#042012fc);box-shadow:0 1px #ffffff0a inset,0 12px 32px #00000059,0 0 20px #00ff880f}.reversi-board.is-locked .reversi-square{cursor:default}.reversi-square{position:relative;aspect-ratio:1;border:none;border-radius:10px;background:linear-gradient(180deg,#ffffff0f,#ffffff05);box-shadow:inset 0 0 0 1px #ffffff12;display:grid;place-items:center;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background .1s ease}.reversi-square:hover:not(:disabled){transform:scale(1.04);background:linear-gradient(180deg,#ffffff24,#ffffff0f);box-shadow:inset 0 0 0 1px #fff3,0 4px 12px #0003}.reversi-square:disabled{cursor:default}.reversi-square.is-last{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--yellow) 85%,#fff),0 0 0 2px #fbbf241f}.reversi-disc{width:78%;height:78%;border-radius:999px;box-shadow:inset 0 4px 8px #ffffff1a,inset 0 -4px 8px #00000059,0 4px 10px #00000047;transition:transform .15s ease}.reversi-disc.black{background:radial-gradient(circle at 34% 28%,#4b5563,#0a0b1e 72%);box-shadow:inset 0 4px 8px #ffffff1a,inset 0 -4px 8px #00000059,0 4px 10px #00000047,0 0 10px #00e5ff1f}.reversi-disc.white{background:radial-gradient(circle at 30% 26%,#fff,#e0d4f5 76%);border:1px solid rgba(168,85,247,.15);box-shadow:inset 0 4px 8px #fff3,inset 0 -4px 8px #0003,0 4px 10px #0003,0 0 10px #ff2d751a}.reversi-marker{width:24%;height:24%;border-radius:999px;background:#0f8c;box-shadow:0 0 8px #0f86,0 0 0 5px #00ff881a;animation:rv-pulse 1.6s ease-in-out infinite}@keyframes rv-pulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.gomoku-page{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 12px 24px;width:100%}.gk-topbar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:720px;gap:8px;flex-wrap:wrap}.gk-topbar-left,.gk-topbar-right{display:flex;align-items:center;gap:6px}.gk-title{font-size:1.15rem;font-weight:800;background:linear-gradient(135deg,var(--gold),#ff9100);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.gk-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:8px;background:#ffd7001f;color:var(--gold);border:1px solid rgba(255,215,0,.2);text-transform:uppercase;letter-spacing:.5px}.gk-icon-btn{display:grid;place-items:center;width:32px;height:32px;border:none;border-radius:10px;background:#ffffff0f;color:var(--ink);cursor:pointer;transition:background .15s,color .15s}.gk-icon-btn:hover{background:#ffffff24;color:var(--gold)}.gk-icon-btn.gk-btn-active{background:#ffd70026;color:var(--gold);box-shadow:0 0 8px #ffd70026}.gk-scores{display:flex;align-items:center;gap:8px;font-weight:700}.gk-score{display:flex;align-items:center;gap:4px;font-size:1rem;font-variant-numeric:tabular-nums}.gk-score-sep{color:var(--muted)}.gk-score-dot{width:10px;height:10px;border-radius:999px}.gk-dot-black{background:radial-gradient(circle at 34% 28%,#4b5563,#0a0b1e 72%);box-shadow:0 0 6px #00e5ff26}.gk-dot-white{background:radial-gradient(circle at 30% 26%,#fff,#e0d4f5 76%);box-shadow:0 0 6px #ff2d751f}.gk-status{text-align:center;font-size:.85rem;font-weight:600;color:var(--muted);margin:0;min-height:1.3em;letter-spacing:.02em}.gk-body{display:flex;gap:20px;align-items:flex-start;justify-content:center;width:100%;max-width:720px}.gk-body-with-guide{max-width:920px}.gk-board-area{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1 1 auto;min-width:0}.gk-coach{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:12px;background:#ffd7000f;border:1px solid rgba(255,215,0,.1)}.gk-coach-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--gold);white-space:nowrap}.gk-coach-text{font-size:.8rem;color:var(--muted);line-height:1.35}.gk-guide{flex:0 0 220px;padding:16px;border-radius:16px;background:var(--panel);border:1px solid var(--grid)}.gk-guide-title{font-size:.85rem;font-weight:800;margin:0 0 8px;background:linear-gradient(135deg,var(--gold),#ff9100);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gk-guide-text{font-size:.78rem;color:var(--muted);line-height:1.45}.gk-guide-section{margin-top:12px}.gk-guide-section h4{font-size:.75rem;font-weight:700;margin:0 0 6px;color:var(--gold);text-transform:uppercase;letter-spacing:.04em}.gk-guide-list{list-style:none;padding:0;margin:0;font-size:.76rem;color:var(--muted);line-height:1.6}.gk-guide-list strong{color:var(--ink)}.gomoku-board-shell{display:grid;gap:2px;width:100%;max-width:min(72vh,620px)}.gomoku-grid-wrap{display:grid;grid-template-columns:18px minmax(0,1fr);gap:2px;align-items:stretch}.gomoku-axis{color:var(--muted);font-size:.58rem;font-weight:700;opacity:.7}.gomoku-axis-top{display:grid;grid-template-columns:18px repeat(15,minmax(0,1fr));gap:2px;padding:0 6px}.gomoku-axis-top span,.gomoku-axis-side span{display:grid;place-items:center}.gomoku-axis-side{display:grid;grid-template-rows:repeat(15,minmax(0,1fr));gap:2px}.gomoku-board{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:2px;padding:6px;border-radius:14px;border:2px solid rgba(255,215,0,.18);background:linear-gradient(170deg,#3c2a0cf7,#241806fc);box-shadow:0 1px #ffffff0a inset,0 12px 32px #00000059,0 0 20px #ffd7000f}.gomoku-board.is-locked .gomoku-cell{cursor:default}.gomoku-cell{position:relative;aspect-ratio:1;border:none;border-radius:4px;background:linear-gradient(180deg,#ffffff0d,#ffffff04);box-shadow:inset 0 0 0 1px #ffffff0f;display:grid;place-items:center;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background .1s ease}.gomoku-cell:hover:not(:disabled){transform:scale(1.08);background:linear-gradient(180deg,#ffffff24,#ffffff0f);box-shadow:inset 0 0 0 1px #fff3,0 4px 10px #0003}.gomoku-cell:disabled{cursor:default}.gomoku-cell.is-last{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--gold) 85%,#fff),0 0 0 2px #ffd70026}.gomoku-cell.is-win{box-shadow:inset 0 0 0 2px var(--gold),0 0 12px #ffd70059}.gomoku-stone{width:80%;height:80%;border-radius:999px;box-shadow:inset 0 3px 6px #ffffff1a,inset 0 -3px 6px #00000059,0 3px 8px #00000047;transition:transform .12s ease}.gomoku-stone.black{background:radial-gradient(circle at 34% 28%,#4b5563,#0a0b1e 72%);box-shadow:inset 0 3px 6px #ffffff1a,inset 0 -3px 6px #00000059,0 3px 8px #00000047,0 0 8px #00e5ff1f}.gomoku-stone.white{background:radial-gradient(circle at 30% 26%,#fff,#e0d4f5 76%);border:1px solid rgba(168,85,247,.15);box-shadow:inset 0 3px 6px #fff3,inset 0 -3px 6px #0003,0 3px 8px #0003,0 0 8px #ff2d751a}.gomoku-stone.glow{animation:gk-glow 1s ease-in-out infinite alternate}@keyframes gk-glow{0%{filter:brightness(1)}to{filter:brightness(1.3) drop-shadow(0 0 6px var(--gold))}}.game-pick-card-gomoku{--pick-accent:var(--gold)}.start-btn-gomoku{background:linear-gradient(135deg,var(--gold),#ff9100)}.start-btn-gomoku:hover{filter:brightness(1.08)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#00000073;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.dialog{background:var(--panel);border:2px solid var(--panel-border);border-radius:20px;padding:28px 24px 22px;width:min(92vw,420px);color:var(--ink);box-shadow:0 20px 60px #0006,var(--neon-glow);text-align:center;animation:slideUp .3s ease;position:relative;overflow:hidden}.dialog:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:22px;background:linear-gradient(135deg,var(--cyan),var(--pink),var(--gold),var(--emerald));z-index:-1;opacity:.25;filter:blur(8px)}.dialog-win{border-color:var(--gold);box-shadow:0 20px 60px #0000004d,0 0 30px #ffd70026,0 0 0 3px #ffd70033}.dialog-emoji{font-size:3rem;margin-bottom:6px;filter:drop-shadow(0 0 8px rgba(255,215,0,.3))}.dialog-title{margin:0 0 6px;font-size:1.5rem;font-family:var(--font-heading);letter-spacing:2px;text-transform:uppercase}.dialog-talk{margin:0 0 16px;color:var(--muted);font-size:.95rem;line-height:1.4}.dialog .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.dialog button{padding:10px 16px;border-radius:10px;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-body);transition:background .15s,transform .1s,box-shadow .2s}.dialog button:hover{background:var(--panel);transform:translateY(-1px);box-shadow:0 2px 10px #00e5ff1a}.dialog .btn-primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;border-color:transparent;box-shadow:0 4px 16px #00e5ff33}.dialog .btn-primary:hover{box-shadow:0 6px 24px #00e5ff4d;transform:translateY(-2px)}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.stats{margin:10px auto;text-align:center;color:var(--muted)}@keyframes mm4Pulse{0%{box-shadow:0 0 #3b82f673}70%{box-shadow:0 0 0 18px #3b82f600}to{box-shadow:0 0 #3b82f600}}.onboard-pulse{outline:3px solid #3b82f6;outline-offset:2px;animation:mm4Pulse 1.2s ease-out 2;border-radius:12px}@media (max-width: 900px){.home-hero,.game-showcase,.game-picker,.rv-body-with-guide{grid-template-columns:1fr}.rv-guide{order:1}.gk-body-with-guide{flex-direction:column}.gk-guide{flex:unset;width:100%}.home-pill-row{justify-content:flex-start}.level-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 640px){.home-card{padding:16px}.mode-grid,.play-grid-reversi{grid-template-columns:1fr}.game-card{padding:16px}.home-footer{flex-direction:column;gap:8px;align-items:flex-start}.rv-topbar{flex-wrap:wrap;justify-content:center;gap:6px}.rv-topbar-left{order:0}.rv-scores{order:1}.rv-topbar-right{order:2}.reversi-board{gap:3px;padding:8px;border-radius:12px}.reversi-square{border-radius:7px}.reversi-axis-top,.reversi-grid-wrap,.reversi-axis-side{gap:3px}.reversi-board-shell{max-width:100%}.gk-topbar{flex-wrap:wrap;justify-content:center;gap:6px}.gk-topbar-left{order:0}.gk-scores{order:1}.gk-topbar-right{order:2}.gomoku-board{gap:1px;padding:4px;border-radius:10px}.gomoku-cell{border-radius:3px}.gomoku-axis-top,.gomoku-grid-wrap,.gomoku-axis-side{gap:1px}.gomoku-board-shell{max-width:100%}}.game-timer{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.4px;background:color-mix(in srgb,var(--panel) 80%,transparent);border:1px solid var(--panel-border);color:var(--ink);white-space:nowrap}.timer-low{color:#d97706;border-color:#d97706;background:color-mix(in srgb,#d97706 10%,var(--bg2))}.timer-critical{color:#ef4444;border-color:#ef4444;background:color-mix(in srgb,#ef4444 12%,var(--bg2));animation:timer-blink 1s ease-in-out infinite}@keyframes timer-blink{0%,to{opacity:1}50%{opacity:.55}}.bs-page{display:grid;gap:0;padding:4px 10px 16px;box-sizing:border-box;overflow-x:hidden}.bs-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 4px;margin-bottom:2px}.bs-topbar-left,.bs-topbar-right{display:flex;align-items:center;gap:8px}.bs-topbar-center{display:flex;align-items:center}.bs-title{margin:0;font-size:1.15rem;font-weight:700;letter-spacing:1px;font-family:var(--font-heading);text-transform:uppercase}.bs-badge{padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;font-family:var(--font-heading);background:linear-gradient(135deg,#00e5ff1f,#a855f714);border:1px solid rgba(0,229,255,.3);color:var(--cyan)}.bs-fleet-status{display:flex;align-items:center;gap:10px;font-size:.84rem;font-weight:600}.bs-fleet-count{white-space:nowrap}.bs-fleet-sep{color:var(--muted);font-weight:400}.bs-status{text-align:center;margin:0 0 6px;padding:5px 14px;font-size:.84rem;font-weight:700;color:var(--muted);letter-spacing:.8px;font-family:var(--font-heading);text-transform:uppercase}.bs-setup{display:grid;grid-template-columns:minmax(0,1.2fr) 260px;gap:18px;align-items:start;justify-items:center}.bs-setup-board{width:100%;display:flex;justify-content:center}.bs-setup-panel{padding:16px;border-radius:14px;background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow)}.bs-panel-title{margin:0 0 10px;font-size:.95rem;font-weight:700}.bs-ship-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}.bs-ship-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;border:1px solid var(--panel-border);background:var(--bg2);font-size:.84rem;font-weight:600;transition:border-color .15s,background .15s}.bs-ship-item.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,var(--bg2))}.bs-ship-item.placed{opacity:.55}.bs-ship-emoji{font-size:1rem}.bs-ship-name{flex:1}.bs-ship-dots{display:flex;gap:3px}.bs-ship-dot{width:10px;height:10px;border-radius:3px;background:var(--muted)}.bs-ship-item.placed .bs-ship-dot{background:var(--blue)}.bs-ship-check{color:var(--green);font-weight:700}.bs-setup-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.bs-ctrl-btn{padding:9px 10px;border-radius:10px;border:1px solid var(--grid);background:var(--bg2);color:var(--ink);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .12s,transform .1s}.bs-ctrl-btn:hover{background:var(--panel);transform:translateY(-1px)}.bs-start-btn{width:100%;padding:13px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--cyan),var(--blue),var(--violet));color:#fff;font-size:.95rem;font-weight:700;font-family:var(--font-heading);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 20px #00e5ff40;transition:box-shadow .3s,transform .15s}.bs-start-btn:hover{box-shadow:0 6px 30px #00e5ff59,0 0 20px #a855f726;transform:translateY(-2px)}.bs-start-btn.disabled{opacity:.45;cursor:not-allowed}.bs-battle{display:grid;gap:10px;justify-items:center}.bs-battle-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;max-width:980px;align-items:start}.bs-board-col{display:grid;gap:6px;justify-items:center}.bs-coach{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:12px;background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--panel-border);width:100%;max-width:980px;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word}.bs-coach-label{flex-shrink:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--cyan);font-family:var(--font-heading)}.bs-coach-text{font-size:.86rem;color:var(--muted);line-height:1.45}.bs-col-tag{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap;text-align:center;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:4px 14px;border-radius:8px;transition:color .3s,background .3s}.bs-col-tag-active{color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.bs-player-timer{font-variant-numeric:tabular-nums;font-size:.76rem;padding:2px 8px;border-radius:6px;opacity:.5;transition:opacity .3s,color .3s}.bs-timer-active{opacity:1;color:var(--ink)}.bs-timer-warn{color:#ef4444!important;animation:timer-blink 1s ease-in-out infinite}.bs-end-reveal{display:grid;gap:16px;justify-items:center;padding:10px 0 30px}.bs-end-header{text-align:center}.bs-end-emoji{font-size:2.6rem}.bs-end-title{margin:4px 0 2px;font-size:1.5rem}.bs-end-sub{margin:0;color:var(--muted);font-size:.88rem}.bs-reveal-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;max-width:980px}.bs-reveal-col{display:grid;gap:4px;justify-items:center}.bs-reveal-tag{text-align:center;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.bs-end-actions{display:flex;gap:10px;justify-content:center}.bs-board-shell{display:grid;gap:4px;width:100%;max-width:min(50vh,440px,100%)}.bs-board-label{text-align:center;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:2px}.bs-axis{color:var(--muted);font-size:.65rem;font-weight:700;opacity:.7}.bs-axis-top{display:grid;grid-template-columns:18px repeat(10,minmax(0,1fr));gap:3px;padding:0 6px}.bs-axis-top span,.bs-axis-side span{display:grid;place-items:center}.bs-axis-side{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));gap:3px}.bs-grid-wrap{display:grid;grid-template-columns:18px minmax(0,1fr);gap:3px;align-items:stretch}.bs-board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;padding:8px;border-radius:14px;box-shadow:0 1px #ffffff0a inset,0 10px 28px #0000003d}.bs-board-setup,.bs-board-fleet{background:linear-gradient(170deg,#0f3250f7,#08203afc);border:1px solid color-mix(in srgb,#1e3a5f 40%,var(--panel-border))}.bs-board-attack{background:linear-gradient(170deg,#0a2646f7,#05162efc);border:1px solid color-mix(in srgb,#14325a 40%,var(--panel-border))}.bs-board.is-locked .bs-cell{cursor:default}.bs-cell{position:relative;aspect-ratio:1;border:none;border-radius:6px;background:linear-gradient(180deg,#1e64a02e,#1446821f);box-shadow:inset 0 0 0 1px #50a0dc1a;display:grid;place-items:center;cursor:pointer;transition:transform .1s,box-shadow .1s,background .1s;font-size:clamp(.6rem,1.6vw,.9rem)}.bs-cell:hover:not(:disabled){transform:scale(1.06);background:linear-gradient(180deg,#3c8cc847,#2864aa2e);box-shadow:inset 0 0 0 1px #78beff40,0 3px 10px #0000002e}.bs-cell:disabled{cursor:default}.bs-ship-fill{width:70%;height:70%;border-radius:4px;background:linear-gradient(135deg,#475569,#334155);box-shadow:inset 0 2px 4px #ffffff14,0 2px 6px #00000040}.bs-marker{display:grid;place-items:center;width:100%;height:100%}.bs-marker-hit{font-size:clamp(.7rem,1.8vw,1.1rem);animation:bs-hit-pop .35s ease-out}.bs-marker-miss{font-size:clamp(.8rem,2vw,1.4rem);color:#64a0dcb3}.bs-marker-sunk{font-size:clamp(.7rem,1.6vw,1rem);color:#ef4444;font-weight:700}@keyframes bs-hit-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.3);opacity:1}to{transform:scale(1)}}.bs-ghost-valid{background:color-mix(in srgb,var(--blue) 30%,transparent)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--blue) 55%,transparent)!important}.bs-ghost-invalid{background:color-mix(in srgb,#ef4444 25%,transparent)!important;box-shadow:inset 0 0 0 2px #ef444480!important}.bs-targetable{cursor:crosshair}.bs-last-shot{animation:bs-shot-flash .5s ease}@keyframes bs-shot-flash{0%{box-shadow:0 0 0 4px #fbbf24b3}to{box-shadow:0 0 #fbbf2400}}.bs-missile{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;overflow:hidden}.bs-missile-trail{position:absolute;left:50%;top:-120%;width:2px;height:140%;transform:translate(-50%);background:linear-gradient(to bottom,transparent 0%,rgba(251,191,36,.25) 30%,rgba(239,68,68,.5) 100%);animation:bs-trail-fade .5s ease-out forwards}@keyframes bs-trail-fade{0%{opacity:1;transform:translate(-50%) scaleY(1)}60%{opacity:.6}to{opacity:0;transform:translate(-50%) scaleY(.2)}}.bs-missile-body{position:absolute;left:50%;top:50%;width:7px;height:18px;border-radius:4px 4px 2px 2px;background:linear-gradient(to bottom,#fbbf24,#ef4444,#991b1b);filter:drop-shadow(0 0 6px rgba(239,68,68,.7));animation:bs-missile-drop .4s ease-in forwards}@keyframes bs-missile-drop{0%{transform:translate(-50%,-600%) scale(.5);opacity:1}75%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(0);opacity:0}}.bs-missile-impact{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);width:130%;height:130%;border-radius:50%;animation:bs-impact-burst .65s .3s ease-out forwards}.bs-missile-hit .bs-missile-impact{background:radial-gradient(circle,rgba(239,68,68,.9),rgba(251,146,60,.5),transparent 70%);box-shadow:0 0 24px #ef444480}.bs-missile-miss .bs-missile-impact{background:radial-gradient(circle,rgba(96,165,250,.7),rgba(147,197,253,.35),transparent 70%);box-shadow:0 0 18px #3b82f64d}@keyframes bs-impact-burst{0%{transform:translate(-50%,-50%) scale(0);opacity:0}25%{transform:translate(-50%,-50%) scale(.8);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.bs-hit{background:linear-gradient(135deg,#ef444440,#b4323226)!important}.bs-miss{background:linear-gradient(135deg,#3c82c81f,#285aa014)!important}.bs-sunk{background:linear-gradient(135deg,#b41e1e59,#78141433)!important}.bs-ship{background:linear-gradient(135deg,#4755694d,#33415533)!important}.game-pick-card-battleship{background:radial-gradient(circle at top right,rgba(0,229,255,.12),transparent 50%),linear-gradient(160deg,rgba(30,60,120,.12),rgba(0,229,255,.06),var(--bg2));border-color:#00e5ff33}.game-pick-card-battleship:hover{border-color:var(--cyan);box-shadow:0 8px 30px #00e5ff33,0 0 20px #a855f71a}[data-theme=light] .disc.yellow{background:radial-gradient(circle at 32% 28%,#fff8d8,#d39a00);border:2px solid #8a6400;box-shadow:inset 0 4px 10px #0000001f,0 0 10px #b0760059,0 0 18px #b076001f}[data-theme=light] .disc.red{background:radial-gradient(circle at 32% 28%,#ffb6c9,#d72f66);border:2px solid #922044;box-shadow:inset 0 4px 10px #0000001f,0 0 10px #d72f6640,0 0 18px #d72f661a}[data-theme=light] .rv-badge{background:linear-gradient(135deg,#0f9f641f,#0b86b814);border:1px solid rgba(15,159,100,.35);color:#0f7c51}[data-theme=light] .rv-icon-btn.rv-btn-active{border-color:#0f9f64;background:linear-gradient(135deg,#0f9f6424,#0b86b814);color:#0f7c51}[data-theme=light] .rv-guide{border:1px solid rgba(15,159,100,.24);box-shadow:0 10px 24px #1f293714}[data-theme=light] .reversi-board{border:2px solid rgba(15,159,100,.32);background:linear-gradient(170deg,#165c38f2,#0e3f27fa);box-shadow:0 1px #ffffff1f inset,0 10px 24px #1f293729,0 0 12px #0f9f641f}[data-theme=light] .reversi-square{background:linear-gradient(180deg,#ffffff14,#ffffff08);box-shadow:inset 0 0 0 1px #ffffff1f}[data-theme=light] .reversi-square.is-last{box-shadow:inset 0 0 0 2px #b88600,0 0 0 2px #b886002e}[data-theme=light] .reversi-disc.white{background:radial-gradient(circle at 30% 26%,#fff,#ddd6f3 72%);border:1px solid rgba(51,65,85,.34);box-shadow:inset 0 4px 8px #ffffff73,inset 0 -4px 8px #1e293b33,0 4px 10px #0f172a3d,0 0 8px #33415533}[data-theme=light] .reversi-marker{background:#19b36f;box-shadow:0 0 8px #19b36f6b,0 0 0 5px #19b36f24}[data-theme=light] .gk-badge{background:#b8860024;color:#8a6400;border:1px solid rgba(138,100,0,.3)}[data-theme=light] .gk-icon-btn.gk-btn-active{background:#b8860029;color:#8a6400;box-shadow:0 0 8px #b8860033}[data-theme=light] .gk-coach{background:#b8860014;border:1px solid rgba(138,100,0,.22)}[data-theme=light] .gk-coach-label,[data-theme=light] .gk-guide-section h4{color:#8a6400}[data-theme=light] .gk-guide-title{background:linear-gradient(135deg,#9a7100,#c88713);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=light] .gomoku-board{border:2px solid rgba(138,100,0,.4);background:linear-gradient(170deg,#5f4214f5,#412b0afc);box-shadow:0 1px #ffffff1f inset,0 10px 24px #1f29372e,0 0 12px #8a64002e}[data-theme=light] .gomoku-cell{background:linear-gradient(180deg,#ffffff14,#ffffff08);box-shadow:inset 0 0 0 1px #ffffff1f}[data-theme=light] .gomoku-cell.is-last{box-shadow:inset 0 0 0 2px #b88600,0 0 0 2px #b8860038}[data-theme=light] .gomoku-cell.is-win{box-shadow:inset 0 0 0 2px #b88600,0 0 10px #b8860066}[data-theme=light] .gomoku-stone.white,[data-theme=light] .gk-dot-white{background:radial-gradient(circle at 30% 26%,#fff,#ddd6f3 72%);border:1px solid rgba(51,65,85,.35);box-shadow:inset 0 3px 6px #ffffff80,inset 0 -3px 6px #1e293b2e,0 3px 8px #0f172a42}[data-theme=light] .bs-board-setup,[data-theme=light] .bs-board-fleet{background:linear-gradient(170deg,#23608aed,#124068f5);border:1px solid rgba(12,80,128,.45)}[data-theme=light] .bs-board-attack{background:linear-gradient(170deg,#1a5481f0,#0e345cf7);border:1px solid rgba(10,70,118,.44)}[data-theme=light] .bs-cell{background:linear-gradient(180deg,#6cb1de47,#4f8bbe38);box-shadow:inset 0 0 0 1px #d1eafd73}[data-theme=light] .bs-cell:hover:not(:disabled){background:linear-gradient(180deg,#8cc5e76b,#66a2d057);box-shadow:inset 0 0 0 1px #eaf8ff9e,0 3px 10px #1e3a5f38}[data-theme=light] .bs-miss{background:linear-gradient(135deg,#579bcc38,#3f7bb629)!important}[data-theme=light] .bs-marker-miss{color:#e1f3fff0}[data-theme=light] .bs-coach-label{color:#0b6fa0}[data-theme=light] .game-pick-card-battleship{background:radial-gradient(circle at top right,rgba(11,134,184,.16),transparent 50%),linear-gradient(160deg,rgba(39,94,153,.18),rgba(11,134,184,.1),var(--bg2));border-color:#0b86b852}@media (max-width: 900px){.bs-setup{grid-template-columns:1fr}.bs-setup-panel{order:1}.bs-battle-grids{grid-template-columns:1fr;gap:12px}.bs-battle-grids>.bs-board-col .bs-board-shell,.bs-battle-grids>.bs-board-shell{max-width:min(70vh,400px,100%)}.bs-reveal-grids{grid-template-columns:1fr;gap:12px}.bs-reveal-col .bs-board-shell{max-width:min(70vh,400px,100%)}.game-picker{grid-template-columns:1fr}}@media (max-width: 640px){.bs-topbar{flex-wrap:wrap;justify-content:center;gap:6px}.bs-topbar-left{order:0}.bs-topbar-center{order:1;width:100%;justify-content:center}.bs-topbar-right{order:2}.bs-board{gap:2px;padding:4px;border-radius:10px}.bs-cell{border-radius:3px}.bs-board-shell{max-width:100%}.bs-battle-grids{gap:8px}.bs-battle-grids>.bs-board-col .bs-board-shell,.bs-battle-grids>.bs-board-shell{max-width:100%}.bs-col-tag{font-size:.68rem;padding:2px 6px;letter-spacing:.3px}.bs-player-timer{font-size:.66rem;padding:1px 4px}.bs-reveal-grids{gap:8px}.bs-reveal-col .bs-board-shell{max-width:100%}.bs-reveal-tag{font-size:.68rem}.bs-end-actions{flex-wrap:wrap}.bs-setup-controls{grid-template-columns:1fr}.bs-coach{padding:6px 10px;font-size:.78rem}.bs-coach-label{font-size:.64rem}.bs-coach-text{font-size:.78rem}.bs-axis{font-size:.55rem}}@media (max-width: 400px){.bs-page{padding:4px 6px 12px}.bs-board{gap:1px;padding:3px;border-radius:8px}.bs-cell{border-radius:2px}.bs-axis-top{grid-template-columns:14px repeat(10,minmax(0,1fr));gap:1px;padding:0 3px}.bs-grid-wrap{grid-template-columns:14px minmax(0,1fr);gap:1px}.bs-topbar{padding:6px 2px}.bs-title{font-size:.95rem}}.name-inputs{margin:8px 0 4px}.name-row{display:flex;align-items:center;gap:10px}.name-input{flex:1;padding:10px 12px;border-radius:10px;border:1px solid var(--panel-border);background:var(--bg2);color:var(--ink);font-size:.92rem;font-weight:500;outline:none;transition:border-color .2s,box-shadow .2s}.name-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)}.name-input::placeholder{color:var(--muted);opacity:.7}.name-vs{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.bs-shake{animation:bs-screen-shake .4s ease-out}@keyframes bs-screen-shake{0%{transform:translate(0)}15%{transform:translate(-4px,2px)}30%{transform:translate(4px,-2px)}45%{transform:translate(-3px,1px)}60%{transform:translate(3px,-1px)}75%{transform:translate(-1px,1px)}to{transform:translate(0)}}.bs-tension-elevated .bs-board-attack{border-color:#fbbf2466;box-shadow:0 1px #ffffff0a inset,0 10px 28px #0000003d,0 0 16px #fbbf241f;transition:border-color .5s,box-shadow .5s}.bs-tension-elevated .bs-col-tag-active{color:#fbbf24;background:color-mix(in srgb,#fbbf24 10%,transparent)}.bs-tension-critical .bs-board-attack{border-color:#ef444480;box-shadow:0 1px #ffffff0a inset,0 10px 28px #0000003d,0 0 20px #ef444426;animation:bs-critical-pulse 1.5s ease-in-out infinite}.bs-tension-critical .bs-col-tag-active{color:#ef4444;background:color-mix(in srgb,#ef4444 12%,transparent);animation:bs-critical-tag-pulse 1.5s ease-in-out infinite}.bs-tension-critical .bs-fleet-count{animation:bs-critical-text-pulse 1.5s ease-in-out infinite}@keyframes bs-critical-pulse{0%,to{box-shadow:0 1px #ffffff0a inset,0 10px 28px #0000003d,0 0 20px #ef44441f}50%{box-shadow:0 1px #ffffff0a inset,0 10px 28px #0000003d,0 0 30px #ef444447}}@keyframes bs-critical-tag-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes bs-critical-text-pulse{0%,to{opacity:1}50%{opacity:.6}}.bs-col-tag-active{position:relative}.bs-col-tag-active:after{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--blue);animation:bs-turn-dot-pulse 1.2s ease-in-out infinite}@keyframes bs-turn-dot-pulse{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.4;transform:translateY(-50%) scale(.7)}}
