:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#13213a;background:radial-gradient(circle at top,#eff4ff,#dde9ff 45%,#cadcff)}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:clip}#app{width:100%}.page{--color-blue: #1f64de;--color-blue-soft: rgba(31, 100, 222, .26);--color-yellow: #ffca08;--color-yellow-soft: rgba(255, 202, 8, .26);width:100%;max-width:1160px;margin:0 auto;padding:46px 8px 8px;display:grid;gap:8px;overflow-x:clip}.opening-splash{position:fixed;inset:0;z-index:2400;display:grid;place-items:center;cursor:pointer;touch-action:manipulation}.opening-splash-backdrop{position:absolute;inset:0;background:#04050894;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:opening-splash-backdrop-fade 3.2s cubic-bezier(.22,1,.36,1) forwards}.opening-splash-shell{position:relative;z-index:1;width:min(68vw,760px);aspect-ratio:1.28 / 1;padding:18px;border-radius:26px}.opening-splash-window{position:relative;width:100%;height:100%;overflow:hidden;border-radius:22px;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px #00000052;background:linear-gradient(180deg,#ffffff14,#ffffff05),#08090c38;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.opening-splash-window:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.08),transparent 36%),radial-gradient(circle at 82% 78%,rgba(255,255,255,.05),transparent 32%);opacity:.9}.opening-splash-lid{position:absolute;inset:0;background:linear-gradient(180deg,#16171df5,#050507fb 74%,#000000fe);box-shadow:0 18px 42px #00000057;transform-origin:top center;animation:opening-splash-lid-open 3.2s cubic-bezier(.22,1,.36,1) forwards}.opening-splash-lid:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 22%),linear-gradient(90deg,rgba(255,255,255,.03),transparent 28%,transparent 72%,rgba(255,255,255,.03))}.opening-splash-lid:after{content:"";position:absolute;left:5%;right:5%;top:0;height:1px;background:#ffffff2e}.opening-splash-brand-band{position:absolute;left:0;width:100%;display:flex;pointer-events:none}.opening-splash-brand-band.top{top:clamp(20px,4vw,34px);padding-inline:clamp(12px,3.2vw,28px);justify-content:flex-start}.opening-splash-brand-band.bottom{bottom:clamp(6px,1.4vw,16px);padding-inline:clamp(10px,2.2vw,22px);justify-content:flex-end}.opening-splash-logo,.opening-splash-symbol{display:block;opacity:0;filter:drop-shadow(0 3px 12px rgba(255,255,255,.08));animation:opening-splash-brand-in .68s ease forwards;animation-delay:.28s}.opening-splash-logo{width:min(46%,290px);max-height:clamp(40px,8vh,72px);object-fit:contain}.opening-splash-symbol{position:relative;width:min(112%,1080px);max-height:clamp(170px,42vh,440px);object-fit:contain;left:clamp(56px,8vw,132px);animation-delay:.42s}.opening-splash-reveal{position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 28%),linear-gradient(180deg,#0b112238,#0b112200);opacity:0;animation:opening-splash-reveal-glow 3.2s ease forwards}.advantage-strip{position:fixed;top:0;left:0;right:0;z-index:540;padding:6px 10px;background:#f7faffd9;border-bottom:1px solid #c2d2ea;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.advantage-meta{display:flex;justify-content:space-between;align-items:center;font-size:.74rem;font-weight:800;color:#243657;margin-bottom:4px}.advantage-track{position:relative;width:100%;height:11px;border-radius:999px;overflow:hidden;background:var(--color-blue-soft)}.advantage-left{height:100%;background:var(--color-yellow);transition:width .22s ease}.advantage-divider{position:absolute;left:50%;top:0;width:1px;height:100%;background:#fffe}.mini-title{position:fixed;bottom:12px;left:10px;z-index:550;font-size:.82rem;font-weight:700;letter-spacing:.03em;color:#263556;background:#fffc;border:1px solid #b7c9e7;border-radius:999px;padding:3px 9px;pointer-events:none}.table-layout{display:grid;gap:8px;align-items:start;min-width:0}.player-panel{position:relative;border-radius:12px;padding:34px 10px 10px;border:2px solid #9fb3d4;background:#ffffffc7;box-shadow:0 2px 8px #2a335117;transition:all .18s ease;display:grid;grid-template-rows:auto auto auto auto;gap:8px}.player-panel.is-turn{border-color:var(--accent);background:linear-gradient(180deg,#ffffff 0%,var(--accent-soft) 100%);box-shadow:0 5px 13px #1f2c4b2b,0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent);animation:none}.player-panel.is-turn:after{content:"";position:absolute;inset:-2px;border-radius:13px;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent),0 0 16px color-mix(in srgb,var(--accent) 22%,transparent);opacity:.55;animation:turn-focus-halo 2.3s ease-in-out infinite}.player-panel.is-winner{border-color:var(--accent);background:linear-gradient(180deg,#ffffff 0%,var(--accent-soft) 100%);box-shadow:0 0 0 3px #ff775044,0 8px 16px #2130562e}.panel-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-head{display:grid;gap:5px}.player-name{font-size:.98rem;font-weight:800}.state-badge{font-size:.68rem;font-weight:800;letter-spacing:.03em;border-radius:999px;padding:3px 7px;color:#fff}.state-badge.turn{background:#2d6cdf}.state-badge.winner{background:#ff6b4a}.state-badge.thinking{background:#6a57c2;animation:pulse-thinking 1s ease-in-out infinite}.panel-badges{position:absolute;top:7px;display:flex;align-items:center;gap:6px;min-height:22px}.panel-badges.left{left:8px}.panel-badges.right{right:8px}.remaining-text{font-size:1rem;font-weight:800}.remaining-stack-grid{height:100%;min-height:132px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:stretch;padding-top:2px}.stack-column{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0}.stack-piece{position:relative;width:94%;height:11px;border-radius:999px;transition:transform .18s ease,opacity .18s ease,filter .18s ease;transform-origin:center center}.stack-piece:not(:first-child){margin-top:-3px}.stack-piece.filled{background:linear-gradient(180deg,color-mix(in srgb,#ffffff 34%,var(--accent)) 0%,var(--accent) 74%);box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #00000036,0 2px 3px #1f2f4d2e}.stack-piece.empty{background:linear-gradient(180deg,#edf2fb,#d7e2f4);opacity:.26;transform:scale(.88);filter:saturate(.7)}.remaining-mini-track{display:none;height:6px;border-radius:999px;overflow:hidden;background:#dde6f5}.remaining-mini-fill{height:100%;border-radius:inherit;background:var(--accent)}.remaining-bar{margin-top:6px;height:8px;border-radius:999px;background:#dfe8f6;overflow:hidden}.remaining-fill{height:100%;border-radius:inherit;background:var(--accent)}.board-stage{width:100%;display:grid;justify-content:center;align-items:start;min-width:0;position:relative}.board-wrap{flex:0 0 auto;max-width:100%}.board-wrap-3d{border-radius:18px;border:1px solid #b89b73;overflow:hidden;box-shadow:inset 0 14px 20px #fff7e7a6,0 4px 10px #5f4a3024;max-width:100%;min-width:0}.inline-3d-shell{width:100%;height:100%;max-width:100%;min-width:0;display:grid;grid-template-rows:auto 1fr;background:radial-gradient(circle at 50% 45%,#f6ecd7,#e4cfa8 65%,#d2b48a)}.inline-3d-controls{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:8px 8px 0;pointer-events:none;max-width:100%}.inline-3d-rotate,.inline-3d-playback,.inline-3d-back{border:none;border-radius:999px;background:#2d4a7ab8;color:#fff;font-weight:700;font-size:.78rem;padding:6px 10px;cursor:pointer;pointer-events:auto}.inline-3d-rotate:hover,.inline-3d-playback:hover,.inline-3d-back:hover{background:#223a61d1}.inline-3d-playback{background:#365a97d1}.inline-3d-back{background:#59657dcf}.inline-3d-canvas{width:100%;height:100%;max-width:100%;min-width:0;touch-action:none}.mobile-side-influence{display:none}.board{position:relative;width:100%;height:100%;border-radius:18px;background:radial-gradient(circle at 50% 45%,#f7ecd7,#e5cfaa 63%,#d4b48a);border:1px solid #b99867;box-shadow:inset 0 14px 20px #fff6e2a8,inset 0 -8px 14px #8a6e4626;overflow:hidden}.board:before{content:"";position:absolute;inset:0;background-image:var(--board-hole-map, none);background-repeat:no-repeat;pointer-events:none;opacity:.72;z-index:0}.board-thinking-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:320;pointer-events:none}.board-thinking-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;padding:7px 14px;font-size:.86rem;font-weight:800;letter-spacing:.02em;color:#f7fbff;background:#223c66d9;box-shadow:0 4px 14px #0f1b3340;border:1px solid #a7bedf66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:board-thinking-glow 1.75s ease-in-out infinite}.thinking-text{white-space:nowrap}.thinking-dots{display:inline-flex;align-items:center;gap:4px}.thinking-dots span{width:4px;height:4px;border-radius:999px;background:#f7fbff;opacity:.35;animation:thinking-dot-bounce 1s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.14s}.thinking-dots span:nth-child(3){animation-delay:.28s}.chain-banner{position:absolute;z-index:315;pointer-events:none}.chain-banner-text{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;border-radius:999px;padding:6px 14px;font-size:1rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;background:#ffffffde;border:1px solid #c8d6ee;box-shadow:0 6px 16px #0f1b332e;animation:chain-pop .52s ease-out forwards}.chain-banner-text.tone-cool{color:#2c6ddf}.chain-banner-text.tone-violet{color:#6153d2}.chain-banner-text.tone-magenta{color:#a245b2}.chain-banner-text.tone-orange{color:#d36d2e}.chain-banner-text.tone-hot{color:#dc3942}.token-visual,.token-hit{position:absolute;width:15.2%;height:15.2%;transform:translate(-50%,-50%);border-radius:999px}.token-visual{pointer-events:none;background:transparent;display:grid;place-items:center}.token-hit{pointer-events:auto;border:none;background:transparent;padding:0;cursor:pointer}.cpu-debug-hover-hit{cursor:default}.cpu-debug-marker{position:absolute;transform:translate(-50%,-50%);border-radius:8px;padding:2px 5px;font-size:.66rem;font-weight:800;line-height:1.1;color:#f8fbff;background:#2f436ecc;border:1px solid #9cb3db;pointer-events:none;display:grid;gap:1px;text-align:center}.cpu-debug-marker.top{background:#2f5d79d4}.cpu-debug-marker.selected{background:#8c3b53e6;border-color:#f5c1cf;box-shadow:0 0 0 1px #f5c1cf66}.cpu-debug-marker.hovered{background:#2f5a8fe6;border-color:#c7dcff}.cpu-debug-marker .rank{font-size:.6rem;opacity:.95}.cpu-debug-marker .score{font-variant-numeric:tabular-nums;letter-spacing:.01em}.token-visual .guide,.token-visual .piece{width:96%;height:96%;display:block;border-radius:999px}.token-visual .guide{background:#ffffff6b;border:1px dashed #90a8c8}.token-hit:hover+.token-visual .guide,.token-hit:active+.token-visual .guide{border-style:solid;transform:scale(1.05)}.token-hit[data-turn=blue]:hover+.token-visual .guide,.token-hit[data-turn=blue]:active+.token-visual .guide{background:var(--color-blue-soft);border-color:var(--color-blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-blue) 45%,transparent)}.token-hit[data-turn=yellow]:hover+.token-visual .guide,.token-hit[data-turn=yellow]:active+.token-visual .guide{background:var(--color-yellow-soft);border-color:var(--color-yellow);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-yellow) 45%,transparent)}.token-visual.last-move .piece,.token-visual.last-move .guide{box-shadow:0 0 0 3px #ff755f,0 0 0 1px #fff6,0 0 10px #ff7a4f55,0 0 16px #ff9b5a33}.token-visual.appear .piece,.token-visual.appear .guide{animation:pop-in .22s ease-out}@keyframes pop-in{0%{transform:scale(.7);opacity:.25}70%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@keyframes chain-pop{0%{opacity:0;transform:translateY(8px) scale(.86)}20%{opacity:1;transform:translateY(0) scale(1.05)}72%{opacity:.96;transform:translateY(-2px) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.94)}}.piece{overflow:hidden;border:2px solid #ffffffd9;box-shadow:0 3px 7px #28304a52,inset 0 0 0 1px #18243f40}.piece.piece-real-image{border:none;background:transparent center / 100% 100% no-repeat;box-shadow:0 2px 6px #28304a47}.piece.blue.piece-real-image,.piece.yellow.piece-real-image{background:transparent center / 100% 100% no-repeat}.piece.blue{background:var(--color-blue)}.piece.yellow{background:var(--color-yellow)}.piece.neutral{background:#8f9aae}.sound-fixed,.language-fixed,.load-fixed,.licenses-fixed,.official-logo-badge,.undo-fixed,.reset-fixed{position:fixed;z-index:980;border:none;border-radius:999px;padding:10px 14px;font-weight:700;color:#fff;cursor:pointer;box-shadow:0 4px 10px #0f1a302f}.official-logo-badge{left:12px;bottom:12px;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border-radius:999px;background:#29385ae6;border:1px solid rgba(255,255,255,.14);box-shadow:0 4px 10px #0f1a302f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:default;pointer-events:none}.official-logo-link{text-decoration:none;cursor:pointer;pointer-events:auto}.official-logo-image{display:block;width:82px;height:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.mobile-menu{display:none}.sound-fixed{right:188px;bottom:12px;background:#5d5f73}.sound-fixed:hover{background:#484a5d}.language-fixed{left:128px;bottom:12px;background:#667194}.language-fixed:hover{background:#505b7c}.load-fixed{left:286px;bottom:12px;background:#4f6f99}.load-fixed:hover{background:#3f5f89}.licenses-fixed{left:428px;bottom:12px;background:#6b5f8f}.licenses-fixed:hover{background:#594d79}.undo-fixed{right:100px;bottom:12px;background:#58657f}.undo-fixed:hover:not(:disabled){background:#44506a}.undo-fixed:disabled{opacity:.45;cursor:not-allowed}.reset-fixed{right:12px;bottom:12px;background:#223a65}.reset-fixed:hover{background:#182a48}.cpu-debug-hud{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:620;width:min(360px,calc(100vw - 24px));max-height:min(calc(100dvh - 24px - env(safe-area-inset-bottom,0px)),calc(100vh - 24px));border-radius:10px;border:1px solid #8ea3c8;background:#f5f9ffeb;box-shadow:0 10px 24px #16294940;padding:6px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:4px;font-size:.74rem;color:#20355f}.cpu-debug-hud.collapsed{width:min(220px,calc(100vw - 24px));max-height:none;gap:3px;padding:5px 6px}.cpu-debug-header{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:0;z-index:1;background:#f5f9ffeb;padding-bottom:2px}.cpu-debug-body{min-height:0;overflow-y:auto;display:grid;gap:4px;padding-right:2px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.cpu-debug-title{font-weight:900}.cpu-debug-toggle{border:1px solid #9fb7dd;background:#e7f0ff;color:#1e4071;border-radius:7px;width:26px;height:24px;font-size:.95rem;font-weight:900;line-height:1;cursor:pointer}.cpu-debug-toggle:hover{background:#dbe9ff}.cpu-debug-overlay-status{display:grid;gap:3px}.cpu-debug-overlay-chip{display:inline-flex;width:fit-content;align-items:center;gap:6px;font-size:.64rem;font-weight:800;color:#1f3f6f;background:#e8f1ff;border:1px solid #b8cdeb;border-radius:999px;padding:1px 7px}.cpu-debug-hud.collapsed .cpu-debug-overlay-chip{font-size:.62rem;padding:1px 7px}.cpu-debug-overlay-legend{display:inline-flex;align-items:center;gap:6px;font-size:.62rem;color:#4a5f84}.cpu-debug-overlay-total-row{display:inline-flex;align-items:center;gap:6px;font-size:.64rem;color:#29456f}.cpu-debug-overlay-total-row input{width:14px;height:14px;accent-color:#355f9f}.cpu-debug-overlay-legend .heat-neg,.cpu-debug-overlay-legend .heat-mid,.cpu-debug-overlay-legend .heat-pos{width:14px;height:10px;border-radius:3px;border:1px solid #b7c2d6}.cpu-debug-overlay-legend .heat-neg{background:#e84d56ad}.cpu-debug-overlay-legend .heat-mid{background:#ffffffd6}.cpu-debug-overlay-legend .heat-pos{background:#2cb066ad}.cpu-debug-selected{display:grid;gap:2px}.cpu-debug-selected .line{font-size:.69rem}.cpu-debug-selected .line.sub{font-size:.65rem;opacity:.9;padding-left:8px}.cpu-debug-selected .line.dimmed{opacity:.52}.cpu-debug-controls{display:grid;gap:3px}.cpu-debug-radio-list{display:grid;gap:3px;border:1px solid #ccd9ef;background:#f8fbff;border-radius:8px;padding:5px 6px}.cpu-debug-radio-row{display:inline-flex;align-items:center;gap:7px;font-size:.68rem;color:#29456f}.cpu-debug-radio-row input{width:14px;height:14px;margin:0;accent-color:#355f9f}.cpu-debug-group{border:1px solid #ccd9ef;background:#f8fbff;border-radius:8px;padding:4px;display:grid;gap:3px}.cpu-debug-param-grid{display:grid;gap:4px}.cpu-debug-param-row{display:grid;grid-template-columns:1fr 72px;align-items:center;gap:8px;font-size:.66rem;color:#29456f}.cpu-debug-number-input{width:100%;min-width:0;border:1px solid #bcd0ea;background:#fff;border-radius:6px;padding:3px 6px;font-size:.66rem;color:#213b66}.cpu-debug-button-row{display:flex;justify-content:flex-end}.cpu-debug-mini-btn{border:1px solid #bed0eb;background:#ebf2ff;color:#20355f;border-radius:6px;padding:4px 8px;font-size:.64rem;font-weight:800;cursor:pointer}.cpu-debug-mini-btn:hover{background:#dfeaff}.cpu-debug-group-toggle{border:1px solid #bed0eb;background:#ebf2ff;border-radius:6px;color:#20355f;display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:.68rem;padding:3px 6px;cursor:pointer}.cpu-debug-group-toggle.some-on{background:#f2f7ff}.cpu-debug-group-toggle.all-on{border-color:#8fb0e3;background:#e3eeff}.cpu-debug-component-list{display:grid;gap:2px}.cpu-debug-component-row{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:6px;font-size:.66rem;color:#2a3f67}.cpu-debug-component-row.off{opacity:.62}.cpu-debug-component-row input{width:14px;height:14px;accent-color:#355f9f}.cpu-debug-overlay-radio{margin:0}.cpu-debug-component-enable{margin:0;justify-self:end}.cpu-debug-component-name{line-height:1.2}.cpu-debug-help{width:16px;height:16px;border-radius:999px;border:1px solid #a8bddf;display:inline-grid;place-items:center;font-size:.6rem;font-weight:900;color:#29497a;background:#f2f7ff;cursor:help}.cpu-debug-component-value{min-width:56px;text-align:right;font-variant-numeric:tabular-nums;font-weight:800;color:#213b66}.cpu-debug-list{display:grid;gap:2px}.cpu-debug-item{border:none;width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:6px;align-items:center;border-radius:6px;background:#e9f0fd;padding:3px 5px;text-align:left;color:#20355f;cursor:pointer}.cpu-debug-item.selected{background:#fde8ef;border:1px solid #efb9ca}.cpu-debug-item.hovered{background:#e4efff;border:1px solid #b7cffa}@media(max-width:979px){.cpu-debug-hud{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:auto;max-height:min(calc(100dvh - 16px - env(safe-area-inset-bottom,0px)),calc(100vh - 16px));border-radius:12px}.cpu-debug-hud.collapsed{width:auto;max-width:min(260px,calc(100vw - 16px))}}.playback-chip{position:fixed;top:auto;right:12px;bottom:60px;z-index:620;border-radius:14px;padding:6px 9px;font-size:.78rem;font-weight:800;color:#fff;background:#25385fbf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.playback-controls{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:end;gap:6px 10px}.playback-row{display:inline-flex;align-items:center;gap:8px}.playback-row-actions{justify-content:flex-end}.playback-label{font-size:.78rem;font-weight:800;color:#f6f9ff;padding:0 2px 0 1px;white-space:nowrap}.playback-progress{display:inline-flex;align-items:center;justify-content:center;min-width:52px;font-size:.7rem;font-weight:800;color:#eaf0ff;background:#30466ea8;border:1px solid #89a2cf66;border-radius:999px;padding:3px 7px;font-variant-numeric:tabular-nums;white-space:nowrap}.playback-step-group{display:inline-flex;align-items:center;gap:5px;flex-wrap:nowrap}.playback-control-btn{border:none;border-radius:999px;padding:5px 10px;background:#3a5f9e;color:#fff;font-size:.74rem;font-weight:700;cursor:pointer}.playback-control-btn:hover{background:#2d4a7a}.playback-control-btn.step{min-width:32px;padding:5px 8px;font-size:.78rem;font-weight:900}.playback-control-btn:disabled{opacity:.42;cursor:not-allowed}.playback-control-btn.stop{background:#6d3a45}.playback-control-btn.stop:hover{background:#552d36}.setup-overlay{position:fixed;inset:0;z-index:700;background:#10182766;display:grid;place-items:center;padding:16px;overflow-y:auto}.setup-modal{width:min(760px,100%);max-height:90vh;border-radius:14px;border:1px solid #9db2d4;background:#f7faff;box-shadow:0 18px 44px #0c13244a;padding:16px;display:grid;gap:12px;overflow-y:auto;overscroll-behavior:contain}.setup-config-grid{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);gap:14px;align-items:start}.setup-config-left,.setup-config-right{display:grid;gap:10px}.setup-modal h2{margin:0}.setup-modal p{margin:0;color:#384c72;font-size:.92rem}.picker-row,.mode-row{display:grid;gap:8px}.picker-label{font-size:.9rem;font-weight:700}.mode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.mode-options.difficulty-options{grid-template-columns:repeat(3,minmax(0,1fr))}.cpu-select{width:100%;border:1px solid #9fb3d4;border-radius:10px;background:#f3f7ff;color:#1a2d52;font-weight:700;padding:10px 12px}.cpu-description-text{color:#445a84;font-size:.84rem;line-height:1.45}.mode-option{border:1px solid #9fb3d4;border-radius:10px;background:#f3f7ff;color:#1a2d52;font-weight:700;padding:8px 10px;cursor:pointer}.mode-option.selected{border-color:#355c9a;background:#dce9ff;box-shadow:inset 0 0 0 1px #7a9ed8}.mode-option.disabled,.mode-option:disabled{opacity:.5;cursor:not-allowed;background:#eef2fb;color:#55627d}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.theme-option{border:1px solid #9fb3d4;border-radius:10px;background:#f3f7ff;color:#1a2d52;font-weight:700;padding:7px 8px;display:grid;gap:5px;justify-items:center;cursor:pointer}.theme-option.selected{border-color:#355c9a;background:#dce9ff;box-shadow:inset 0 0 0 1px #7a9ed8}.theme-option-label{font-size:.74rem;line-height:1.1}.theme-option-chips{display:grid;grid-template-rows:repeat(2,minmax(0,auto));gap:4px}.theme-preview-chip{width:14px;height:14px;border-radius:999px;border:1px solid #ffffff;box-shadow:0 1px 4px #2531513d}.theme-preview-chip-real{background-position:center;background-repeat:no-repeat;background-size:cover}.theme-assignment{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;border:1px solid #cfdbef;border-radius:10px;background:#f8fbff;padding:8px}.theme-assignment-item{display:grid;justify-items:center;gap:4px;text-align:center}.theme-assignment-label{font-size:.72rem;font-weight:700;color:#39517c}.theme-assignment-chip{width:26px;height:26px;border-radius:999px;border:2px solid #ffffff;box-shadow:0 1px 6px #2531513d;background-position:center;background-repeat:no-repeat;background-size:cover}.theme-assignment-name{font-size:.72rem;color:#2a4066}.theme-swap-button{border:1px solid #95acd4;border-radius:999px;background:#e6efff;color:#1f3f6f;font-size:1.05rem;font-weight:900;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}.theme-swap-button:hover{background:#d9e7ff}.start-button{justify-self:end;border:none;border-radius:8px;padding:9px 14px;font-weight:700;color:#fff;background:#223a65;cursor:pointer}.setup-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;padding-top:8px;background:linear-gradient(180deg,#f7faff00,#f7fafff2 34%,#f7faff);z-index:1}.setup-modal>.start-button{position:sticky;bottom:0;z-index:1;margin-top:6px;background:#223a65;box-shadow:0 -6px 10px #f7faff}.license-modal{width:min(860px,100%)}.license-pre{margin:0;padding:12px;border-radius:12px;border:1px solid #d4dfef;background:#eef4ff;color:#213454;font-family:Consolas,Courier New,monospace;font-size:.8rem;line-height:1.5;white-space:pre-wrap;overflow:auto}.online-setup-overlay{z-index:620}.online-setup-modal{width:min(760px,100%)}.online-shell{display:grid;justify-content:center;padding:10px 4px 18px}.online-card{width:min(680px,100%);border-radius:14px;border:1px solid #9db2d4;background:#f7faff;box-shadow:0 12px 28px #0f1b3340;padding:16px;display:grid;gap:12px}.online-head h2{margin:0;color:#1e355f}.online-head p{margin:6px 0 0;color:#41547b;font-size:.92rem}.online-session-meta{display:flex;flex-wrap:wrap;gap:6px}.online-session-meta span{font-size:.76rem;font-weight:700;color:#3f5680;border:1px solid #c0d0e8;background:#eef4ff;border-radius:999px;padding:3px 8px}.online-error-slot{min-height:0;min-width:0}.online-error-slot.has-error{min-height:22px;border-radius:8px;border:1px solid #e4b6b6;background:#fff1f1;padding:5px 8px;display:flex;align-items:center}.online-error-text{color:#9a2b2b;font-size:.86rem;font-weight:700}.online-section h3{margin:0 0 8px;color:#1d3258}.online-actions{display:flex;flex-wrap:wrap;gap:8px}.online-btn{border:1px solid #9fb3d4;border-radius:9px;background:#f3f7ff;color:#1a2d52;font-weight:700;padding:8px 11px;cursor:pointer}.online-btn.primary{background:#dce9ff;border-color:#7498ce}.online-btn.success{background:#dcf4e7;border-color:#88c2a4}.online-btn.warn{background:#fff0df;border-color:#d5b287}.online-btn.ghost{background:#f5f8ff}.online-code-box{border-radius:10px;border:1px solid #c2d3eb;background:#f0f6ff;padding:10px}.online-code-label{font-size:.8rem;color:#4a618d}.online-code-value{margin-top:4px;font-size:1.28rem;letter-spacing:.08em;font-weight:800;color:#1b315a}.online-input-wrap{display:grid;gap:5px;margin-bottom:10px;color:#304a76;font-size:.88rem;font-weight:700}.online-input-wrap input{border:1px solid #a8beda;border-radius:8px;padding:8px 10px;background:#fff;color:#17315e;font-weight:700}.online-input-wrap input:focus{outline:2px solid #9fc0ec;outline-offset:1px}.online-waiting-copy{margin:0 0 10px;color:#3e537f;font-size:.9rem}.online-status-list{border-radius:10px;border:1px solid #c4d4eb;background:#f2f7ff;padding:10px;display:grid;gap:6px;margin-bottom:10px}.online-status-item{color:#2f476f;font-size:.9rem}.waiting-room-code{border-radius:12px;border:1px solid #b6c9e6;background:linear-gradient(180deg,#f7fbff,#e9f2ff);padding:12px;margin-bottom:10px}.waiting-room-code-head{font-size:.8rem;font-weight:700;color:#46618f;letter-spacing:.03em}.waiting-room-code-main{display:flex;align-items:center;gap:8px;margin-top:4px}.waiting-room-code-value{font-size:1.34rem;font-weight:900;letter-spacing:.08em;color:#17315e;background:#fff;border:1px solid #c5d6ee;border-radius:8px;padding:5px 10px}.online-btn.copy{padding:7px 10px}.waiting-room-code-sub{margin-top:6px;font-size:.84rem;color:#355381}.waiting-room-copy-feedback{margin-top:4px;font-size:.82rem;font-weight:700;color:#1d5e35}.start-button:disabled{opacity:.5;cursor:not-allowed}.winner-overlay{position:fixed;inset:0;z-index:680;pointer-events:none;display:grid;place-items:center;padding:20px}.winner-card{position:relative;pointer-events:auto;width:min(380px,92vw);border-radius:16px;border:1px solid #9bb2d8;background:linear-gradient(180deg,#ffffffed,#ecf3ffef);box-shadow:0 12px 34px #17274a30;text-align:center;padding:18px 16px;animation:winner-pop .26s ease-out}.winner-title{font-size:1.3rem;font-weight:900;letter-spacing:.05em;color:#22345d}.winner-color-dot{width:16px;height:16px;border-radius:999px;margin:8px auto 0;border:2px solid #ffffffd9;box-shadow:0 2px 6px #20315352}.winner-actions{margin-top:12px;display:grid;gap:8px;justify-items:center}.winner-actions-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px}.winner-actions-row-primary,.winner-actions-row-secondary{width:100%}.winner-btn{border:none;border-radius:8px;padding:8px 12px;font-weight:700;color:#fff;cursor:pointer}.winner-btn.playback{background:#30588a}.winner-btn.playback:hover{background:#244267}.winner-btn.view3d{background:#4f5fb7}.winner-btn.view3d:hover{background:#3c4a96}.winner-btn.restart{background:#2f6e58}.winner-btn.restart:hover{background:#21513f}.winner-sparkles{position:absolute;inset:0;pointer-events:none}.winner-sparkles span{position:absolute;width:6px;height:6px;border-radius:50%;background:#ffd54f;opacity:0;left:calc(8% + (var(--i) * 6.2%));top:calc(16% + ((var(--i) * 17%) % 70%));animation:sparkle .9s ease-out calc(var(--i) * 38ms) 1}@keyframes winner-pop{0%{opacity:0;transform:scale(.86)}70%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes sparkle{0%{opacity:0;transform:translateY(6px) scale(.5)}35%{opacity:.95;transform:translateY(-4px) scale(1)}to{opacity:0;transform:translateY(-14px) scale(.4)}}@keyframes opening-splash-brand-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes opening-splash-lid-open{0%,64%{transform:translateY(0);opacity:1}to{transform:translateY(-108%);opacity:.98}}@keyframes opening-splash-backdrop-fade{0%,56%{opacity:1}72%{opacity:.62}86%{opacity:.24}to{opacity:0}}@keyframes opening-splash-reveal-glow{0%,58%{opacity:0}78%{opacity:.52}to{opacity:0}}@keyframes opening-splash-shell-lift{0%,54%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-132vh) scale(1.02)}}@keyframes opening-splash-desktop-reveal{0%,56%{opacity:0}74%{opacity:.38}to{opacity:1}}@keyframes opening-splash-mobile-backlight{0%,60%{opacity:0}82%{opacity:.48}to{opacity:.12}}@media(min-width:980px){.opening-splash.desktop .opening-splash-shell{animation:opening-splash-shell-lift 3.2s cubic-bezier(.22,1,.36,1) forwards}.opening-splash.desktop .opening-splash-shell{width:min(68vw,760px);aspect-ratio:1.28 / 1}.opening-splash.desktop .opening-splash-window,.opening-splash.desktop .opening-splash-lid{border-radius:24px}.opening-splash.desktop .opening-splash-window:before,.opening-splash.desktop .opening-splash-window{border-radius:24px;background:linear-gradient(180deg,#ffffff14,#ffffff05),#08090cf5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow:visible}.opening-splash.desktop .opening-splash-lid{border-radius:24px;animation:none}.opening-splash.desktop .opening-splash-reveal{height:54%;opacity:0;animation:opening-splash-desktop-reveal 3.2s ease forwards}.table-layout{grid-template-columns:minmax(186px,230px) minmax(420px,1fr) minmax(186px,230px);justify-content:center;align-items:start}.player-panel{height:fit-content}}@media(max-width:979px){.opening-splash.mobile{background:#030304}.opening-splash.mobile .opening-splash-backdrop{background:#030304;-webkit-backdrop-filter:none;backdrop-filter:none}.opening-splash.mobile .opening-splash-shell{width:100vw;height:100vh;padding:0}.opening-splash.mobile .opening-splash-window{border-radius:0;border:none;box-shadow:none;background:transparent}.opening-splash.mobile .opening-splash-lid{border-radius:0}.opening-splash.mobile .opening-splash-logo{width:min(58vw,240px);max-height:clamp(40px,8vh,74px)}.opening-splash.mobile .opening-splash-symbol{width:min(124vw,740px);max-height:clamp(220px,46vh,420px);left:clamp(40px,10vw,92px)}.opening-splash.mobile .opening-splash-reveal{height:50%;animation:opening-splash-mobile-backlight 3.2s ease forwards}.opening-splash.mobile .opening-splash-brand-band.top{top:calc(16px + env(safe-area-inset-top));padding-inline:14px}.opening-splash.mobile .opening-splash-brand-band.bottom{bottom:calc(20px + env(safe-area-inset-bottom));padding-inline:8px}.page{padding-top:44px}.table-layout{grid-template-columns:1fr;gap:6px}.sound-fixed,.language-fixed,.load-fixed,.licenses-fixed,.undo-fixed,.reset-fixed{display:none}.mobile-menu{position:fixed;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:980;display:block}.mobile-menu-toggle{width:38px;height:38px;border:1px solid #9db2d6;border-radius:10px;background:#f7fbffea;display:grid;place-content:center;gap:4px;padding:0;cursor:pointer;box-shadow:0 3px 8px #15254526}.hamburger-line{display:block;width:16px;height:2px;border-radius:2px;background:#2a3b61}.mobile-menu-panel{position:absolute;right:0;bottom:calc(44px + env(safe-area-inset-bottom));min-width:152px;display:grid;gap:5px;background:#f5f9ffed;border:1px solid #b2c5e3;border-radius:10px;padding:6px;box-shadow:0 10px 24px #0f1b3140}.mobile-menu-group{border:1px solid #d0dbee;border-radius:8px;padding:6px;background:#f8fbff;margin-bottom:4px}.mobile-menu-group-title{font-size:.68rem;font-weight:700;color:#445a84;margin-bottom:5px}.mobile-menu-segment{display:grid;grid-template-columns:1fr 1fr;gap:4px}.mobile-segment-btn{border:1px solid #c6d4eb;background:#fff;border-radius:7px;font-size:.74rem;font-weight:700;color:#2a3f68;padding:6px;cursor:pointer}.mobile-segment-btn.selected{border-color:#6f8fc3;background:#dfeaff}.mobile-menu-item{border:1px solid #c5d4ea;background:#fff;color:#20345f;border-radius:8px;font-weight:700;font-size:.82rem;text-align:left;padding:7px 8px;cursor:pointer}.mobile-menu-link{display:block;text-decoration:none}.mobile-menu-item:disabled{opacity:.48;cursor:not-allowed}.mobile-menu-item.danger{color:#8e2f2f;border-color:#e0b9b9}.player-panel{grid-template-rows:auto auto auto auto;min-height:0}.official-logo-badge{left:10px;bottom:calc(10px + env(safe-area-inset-bottom));min-height:34px;padding:6px 9px;border-radius:999px}.official-logo-image{width:70px}.remaining-stack-grid{display:none}.remaining-mini-track{display:block;height:8px}.page.mobile-panels-faceoff .player-panel.yellow{order:1;transform:rotate(180deg)}.page.mobile-panels-faceoff .board-stage{display:grid;grid-template-columns:auto 16px;column-gap:6px;align-items:start;order:2}.page.mobile-panels-faceoff .player-panel.blue{order:3}.page.mobile-panels-faceoff .mobile-side-influence{display:grid;grid-template-rows:auto 1fr auto;align-items:center;gap:4px}.mobile-side-meta{font-size:.62rem;font-weight:800;color:#31496f;text-align:center}.page.mobile-panels-faceoff .mobile-side-meta.top{transform:rotate(180deg);transform-origin:center}.mobile-side-track{position:relative;width:100%;height:100%;border-radius:999px;overflow:hidden;background:var(--color-yellow-soft);border:1px solid #afc2df}.mobile-side-fill{position:absolute;left:0;right:0;bottom:0;background:var(--color-blue);transition:height .22s ease}.mobile-side-divider{position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffffd9}.page.mobile-panels-faceoff .advantage-strip{display:none}.page.mobile-panels-faceoff{padding-top:8px}.page.mobile-panels-standard .table-layout{grid-template-columns:1fr 1fr;grid-template-areas:"yellow blue" "board board";gap:6px}.page.mobile-panels-standard .player-panel.yellow{grid-area:yellow;order:1;transform:none}.page.mobile-panels-standard .player-panel.blue{grid-area:blue;order:2}.page.mobile-panels-standard .board-stage{grid-area:board;order:3}}@media(max-width:640px){.page{padding:44px 4px 4px;gap:4px}.page.mobile-panels-faceoff{padding:4px}.player-panel{padding:30px 7px 7px}.player-name{font-size:.88rem}.remaining-text{font-size:.92rem}.remaining-stack-grid{display:none}.stack-column{gap:2px}.stack-piece{border-radius:3px}.token-visual,.token-hit{width:15.8%;height:15.8%}.board-thinking-chip{font-size:.8rem;padding:6px 12px}.chain-banner-text{font-size:.9rem;padding:6px 11px}.playback-controls{grid-template-columns:1fr;justify-content:stretch;gap:6px}.playback-chip{left:10px;right:calc(58px + env(safe-area-inset-right));top:auto;bottom:calc(10px + env(safe-area-inset-bottom));transform:none;width:auto;max-width:min(420px,calc(100vw - 68px - env(safe-area-inset-right)));border-radius:12px;padding:6px 8px}.playback-row-meta,.playback-row-actions{justify-content:space-between;gap:6px}.playback-row-actions .playback-control-btn{flex:0 0 auto}.playback-progress{min-width:46px;font-size:.67rem;padding:3px 6px}.playback-step-group{gap:4px}.playback-control-btn.step{min-width:30px;padding:5px 7px}.sound-fixed{right:320px;bottom:10px;padding:9px 11px}.language-fixed{right:246px;bottom:10px;padding:9px 11px}.load-fixed{left:120px;bottom:10px;padding:9px 11px}.licenses-fixed{left:244px;bottom:10px;padding:9px 11px}.undo-fixed{right:92px;bottom:10px;padding:9px 11px}.reset-fixed{right:10px;bottom:10px;padding:9px 12px}.mini-title{left:8px;bottom:10px}.setup-modal{padding:12px;gap:10px;max-height:calc(100vh - 12px)}.setup-config-right{gap:8px}.picker-row{gap:6px}.setup-config-grid{grid-template-columns:1fr;gap:10px}.mode-options{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.mode-options.difficulty-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mode-options.difficulty-options .mode-option{padding:7px 6px;font-size:.82rem}.theme-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.theme-option{padding:6px;gap:4px}.theme-option-label{font-size:.68rem}.theme-preview-chip{width:12px;height:12px}.theme-assignment{padding:7px;gap:6px}.theme-assignment-chip{width:22px;height:22px;border-width:1px}.theme-assignment-label,.theme-assignment-name{font-size:.66rem}.theme-swap-button{width:30px;height:30px;font-size:.96rem}.setup-actions{gap:6px;padding-top:7px}.winner-card{padding:14px 12px}.online-card,.online-setup-modal{padding:12px;gap:10px}.winner-title{font-size:1.2rem}.winner-actions{gap:7px}.winner-actions-row{gap:6px}.winner-btn{padding:8px 10px;font-size:.84rem}.cpu-debug-hud{left:6px;bottom:6px;width:min(340px,calc(100vw - 12px));max-height:calc(100vh - 12px);font-size:.7rem;padding:5px}.cpu-debug-selected .line{font-size:.68rem}.cpu-debug-hud.collapsed{width:min(200px,calc(100vw - 12px))}.cpu-debug-group-toggle{font-size:.64rem;padding:2px 5px}.cpu-debug-component-row{font-size:.64rem;gap:5px}.cpu-debug-component-value{min-width:46px}.board-wrap-3d{border-radius:14px}.inline-3d-controls{justify-content:center;padding:6px 6px 0;gap:6px}.inline-3d-rotate,.inline-3d-playback,.inline-3d-back{font-size:.72rem;padding:6px 8px;min-height:32px}.inline-3d-canvas{min-height:0}}@keyframes pulse-thinking{0%{transform:scale(1);opacity:.82}50%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:.82}}@keyframes turn-focus-halo{0%{opacity:.45}50%{opacity:.72}to{opacity:.45}}@keyframes board-thinking-glow{0%{box-shadow:0 4px 14px #0f1b3340;opacity:.9}50%{box-shadow:0 6px 18px #0f1b3352;opacity:1}to{box-shadow:0 4px 14px #0f1b3340;opacity:.9}}@keyframes thinking-dot-bounce{0%{transform:translateY(0);opacity:.35}35%{transform:translateY(-1.5px);opacity:.95}70%{transform:translateY(0);opacity:.55}to{transform:translateY(0);opacity:.35}}.record-notice{position:fixed;top:52px;left:50%;transform:translate(-50%);z-index:990;border-radius:999px;padding:7px 12px;font-size:.78rem;font-weight:700;border:1px solid #c8d6ec;box-shadow:0 6px 14px #17274124;background:#f7fbffed;color:#233b65}.record-notice.success{border-color:#9ec2a7;background:#eefaf1f0;color:#1f6137}.record-notice.error{border-color:#d8a7a7;background:#fff4f4f0;color:#8c2d2d}
