@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--surface-primary:#0f141a;--surface-secondary:#161c24;--surface-tertiary:#1c252f;--surface-elevated:#232e3a;--bg-primary:var(--surface-primary);--bg-secondary:var(--surface-secondary);--bg-tertiary:var(--surface-tertiary);--border-subtle:#ffffff14;--border-default:#ffffff29;--border-color:#ffffff1f;--border-color-hover:#ffffff38;--text-primary:#fffffff2;--text-secondary:#ffffffb3;--text-tertiary:#ffffff80;--color-primary:#38bdf8;--color-primary-hover:#0ea5e9;--color-primary-light:#38bdf82e;--color-accent:#a78bfa;--color-accent-hover:#c4b5fd;--color-accent-light:#a78bfa33;--color-success:#34d399;--color-success-light:#34d39933;--color-danger:#f87171;--color-danger-light:#f8717133;--color-warning:#fbbf24;--color-warning-light:#fbbf242e;--color-info:#60a5fa;--color-info-light:#60a5fa33;--on-primary:#000000e0;--on-accent:#000000e0;--on-success:#000000e0;--on-danger:#000000e0;--on-warning:#000000e0;--on-info:#000000e0}}@media (prefers-color-scheme:light){:root{--surface-primary:#fff;--surface-secondary:#f5f5f5;--surface-tertiary:#eee;--surface-elevated:#fff;--border-subtle:#00000014;--border-default:#00000026;--text-primary:#000000e6;--text-secondary:#0009;--text-tertiary:#0006}}@media (width>=768px){:root{--board-size:min(60vw, 560px)}}@media (width>=1024px){:root{--board-size:min(50vw, 600px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes popIn{0%{opacity:0;transform:translate(-50%)scale(.8)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px}50%{box-shadow:0 0 12px}}@keyframes check-pulse{0%,to{box-shadow:0 0 4px color-mix(in srgb, var(--color-danger) 50%, transparent)}50%{box-shadow:0 0 16px color-mix(in srgb, var(--color-danger) 80%, transparent);background:var(--color-danger)}}@keyframes thinking-glow{0%,to{box-shadow:0 0 8px #4caf5033}50%{box-shadow:0 0 16px #4caf5066}}@keyframes thinking-glow-light{0%,to{box-shadow:0 2px 8px #0000001a}50%{box-shadow:0 4px 16px #4caf504d}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes resultBounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes result-icon-bounce{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(300px)rotate(720deg)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translate(0,0)}}@keyframes confirmation-dialog-slide-in{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes confirmation-dialog-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translate(0,0)}}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes onboarding-fade-in{0%{opacity:0}to{opacity:1}}@keyframes onboarding-hint-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{touch-action:manipulation;-webkit-touch-callout:none;overscroll-behavior:none}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:var(--bg-secondary);color:var(--text-primary);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin-bottom:var(--spacing-md)}p:last-child{margin-bottom:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}ul,ol{padding-left:var(--spacing-lg)}code,pre{font-family:SF Mono,Monaco,Menlo,Courier New,monospace}code{background-color:var(--bg-tertiary);border-radius:var(--radius-sm);padding:.2em .4em;font-size:.9em}pre{padding:var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);overflow-x:auto}pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}img{max-width:100%;height:auto;display:block}table{border-collapse:collapse;width:100%}input,textarea,select,button{font-family:inherit;font-size:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:var(--color-white)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}*{scrollbar-width:thin;scrollbar-color:var(--color-gray-400) var(--bg-secondary)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.p-0{padding:0}.m-xs{margin:var(--spacing-xs)}.p-xs{padding:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.p-sm{padding:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.p-md{padding:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.p-lg{padding:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.p-xl{padding:var(--spacing-xl)}.m-2xl{margin:var(--spacing-2xl)}.p-2xl{padding:var(--spacing-2xl)}.mt-0{margin-top:0}.pt-0{padding-top:0}.mt-xs{margin-top:var(--spacing-xs)}.pt-xs{padding-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.pt-sm{padding-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.pt-md{padding-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.pt-lg{padding-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.pt-xl{padding-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.pt-2xl{padding-top:var(--spacing-2xl)}.mr-0{margin-right:0}.pr-0{padding-right:0}.mr-xs{margin-right:var(--spacing-xs)}.pr-xs{padding-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.pr-sm{padding-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.pr-md{padding-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.pr-lg{padding-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.pr-xl{padding-right:var(--spacing-xl)}.mr-2xl{margin-right:var(--spacing-2xl)}.pr-2xl{padding-right:var(--spacing-2xl)}.mb-0{margin-bottom:0}.pb-0{padding-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.pb-xs{padding-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.pb-sm{padding-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.pb-md{padding-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.pb-lg{padding-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.pb-xl{padding-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.pb-2xl{padding-bottom:var(--spacing-2xl)}.ml-0{margin-left:0}.pl-0{padding-left:0}.ml-xs{margin-left:var(--spacing-xs)}.pl-xs{padding-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.pl-sm{padding-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.pl-md{padding-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.pl-lg{padding-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.pl-xl{padding-left:var(--spacing-xl)}.ml-2xl{margin-left:var(--spacing-2xl)}.pl-2xl{padding-left:var(--spacing-2xl)}.mx-0{margin-left:0;margin-right:0}.px-0{padding-left:0;padding-right:0}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.mx-xl{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.mx-2xl{margin-left:var(--spacing-2xl);margin-right:var(--spacing-2xl)}.px-2xl{padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl)}.my-0{margin-top:0;margin-bottom:0}.py-0{padding-top:0;padding-bottom:0}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.my-xl{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.my-2xl{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.py-2xl{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.mx-auto{margin-left:auto;margin-right:auto}.w-full{width:100%}.h-full{height:100%}.w-screen{width:100vw}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;user-select:none}.select-auto{-webkit-user-select:auto;user-select:auto}.select-all{-webkit-user-select:all;user-select:all}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-base);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;font-weight:500;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-200);border-color:var(--border-color-hover)}.btn-success{background-color:var(--color-success);color:var(--on-success)}.btn-success:hover:not(:disabled){background-color:color-mix(in srgb, var(--color-success) 88%, black)}.btn-danger{background-color:var(--color-danger);color:var(--on-danger)}.btn-danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--color-danger) 88%, black)}.btn-warning{background-color:var(--color-warning);color:var(--on-warning)}.btn-warning:hover:not(:disabled){background-color:color-mix(in srgb, var(--color-warning) 88%, black)}.btn-ghost{color:var(--text-primary);background:0 0}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-lg)}.btn-icon{font-size:1.1em}.btn-icon-only{padding:var(--spacing-sm)}.btn-icon-only .btn-icon{margin:0}.control-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);flex:1;justify-content:center;font-weight:500;display:flex}.control-btn:hover:not(:disabled){background-color:var(--color-gray-200);border-color:var(--border-color-hover)}.control-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn .btn-icon{font-size:var(--text-lg)}.new-game-btn{background-color:var(--color-primary);color:var(--on-primary);border-color:var(--color-primary)}.new-game-btn:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.resign-btn:hover:not(:disabled){background-color:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger)}.modal-button{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:12px 24px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;transition:all .15s ease-out;display:flex}.modal-button.primary{background:var(--color-primary);color:var(--on-primary)}.modal-button.primary:hover,.modal-button.primary:active{background:var(--color-primary-hover)}.modal-button.secondary{color:var(--text-secondary);background:#ffffff1a}.modal-button.secondary:hover{background:#ffffff26}.modal-button.secondary:active{background:#fff3}@media (prefers-color-scheme:light){.modal-button.secondary{background:#00000014}.modal-button.secondary:hover{background:#0000001f}.modal-button.secondary:active{background:#00000026}}.export-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.export-btn:hover{background-color:var(--bg-tertiary)}.close-button{width:32px;height:32px;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.close-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.toggle-button{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.toggle-button.on{background-color:var(--color-success-light);border-color:var(--color-success)}.toggle-icon{font-size:var(--text-lg)}.toggle-text{font-size:var(--text-sm);font-weight:500}.form-group{margin-bottom:var(--spacing-md)}.form-group:last-child{margin-bottom:0}.form-label,.setting-label,.option-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-weight:600;display:block}.form-input,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);transition:border-color var(--transition-fast)}.form-input:hover:not(:disabled),.form-textarea:hover:not(:disabled){border-color:var(--border-color-hover)}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4a90d933}.form-input:disabled,.form-textarea:disabled{opacity:.5;cursor:not-allowed}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-select:hover:not(:disabled){border-color:var(--border-color-hover)}.form-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4a90d933}.form-select:disabled{opacity:.5;cursor:not-allowed}.form-checkbox,.form-radio{cursor:pointer;width:1.25rem;height:1.25rem;accent-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:100px}.toggle-switch{background:#ffffff0d;border:none;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:all .15s ease-out;display:flex}.toggle-switch:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.toggle-switch{background:#0000000a}.toggle-switch:hover{background:#00000014}}.toggle-switch{cursor:pointer}.toggle-switch.disabled{opacity:.4;cursor:not-allowed}.toggle-switch.disabled:hover{transform:none}.toggle-switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.toggle-slider{background:#fff3;border-radius:12px;width:44px;height:24px;transition:background .15s ease-out;position:relative}.toggle-slider:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s ease-out;position:absolute;top:2px;left:2px}.toggle-switch.on .toggle-slider{background:var(--color-primary)}.toggle-switch.on .toggle-slider:after{transform:translate(20px)}@media (prefers-color-scheme:light){.toggle-slider{background:#00000026}}.toggle-label{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:14px}.form-range{appearance:none;cursor:pointer;background:#ffffff1a;border-radius:4px;width:100%;height:8px}.form-range::-webkit-slider-thumb{appearance:none;background:var(--color-primary);cursor:pointer;border:2px solid #ffffff4d;border-radius:50%;width:28px;height:28px;transition:transform .15s ease-out}.form-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.form-range::-moz-range-thumb{background:var(--color-primary);cursor:pointer;border:2px solid #ffffff4d;border-radius:50%;width:28px;height:28px}@media (prefers-color-scheme:light){.form-range{background:#0000001a}.form-range::-webkit-slider-thumb{border-color:#0003}.form-range::-moz-range-thumb{border-color:#0003}}.option-group{margin-bottom:var(--spacing-lg)}.option-group:last-child{margin-bottom:0}.mode-options,.color-options{gap:var(--spacing-sm);display:flex}.mode-option,.color-option{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);border:2px solid #0000;flex-direction:column;flex:1;display:flex}.mode-option:hover,.color-option:hover{background-color:var(--color-gray-200)}.mode-option.active,.color-option.active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.difficulty-options{gap:var(--spacing-xs);flex-direction:column;display:flex}.difficulty-option{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.difficulty-option:hover{background-color:var(--color-gray-200)}.difficulty-option.active{background-color:var(--color-primary-light);border-color:var(--color-primary)}.difficulty-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-level{background-color:var(--color-primary);width:24px;height:24px;color:var(--text-inverse);font-size:var(--text-sm);border-radius:var(--radius-full);justify-content:center;align-items:center;font-weight:600;display:flex}.difficulty-name{flex:1;font-weight:500}.difficulty-elo{font-size:var(--text-xs);color:var(--text-secondary)}.difficulty-slider{gap:var(--spacing-xs);display:flex}.difficulty-btn{padding:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:2px solid #0000;flex:1;font-weight:600}.difficulty-btn:hover{background-color:var(--color-gray-200)}.difficulty-btn.active{background-color:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.difficulty-info{margin-top:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-secondary);text-align:center;display:block}.chess-game{max-width:1200px;padding:var(--spacing-md);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.game-content{gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex}.board-section{justify-content:center;display:flex;position:relative}.fullscreen-enter-btn{bottom:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--radius-md);color:#fff;cursor:pointer;opacity:.6;width:40px;height:40px;transition:opacity var(--transition-fast), transform var(--transition-fast);z-index:10;background:#0009;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.fullscreen-enter-btn:hover{opacity:1;transform:scale(1.05)}.fullscreen-enter-btn:active{transform:scale(.95)}.fullscreen-enter-btn svg{width:20px;height:20px}.sidebar{gap:var(--spacing-md);flex-direction:column;display:flex}@media (width>=768px){.chess-game{padding:var(--spacing-xl)}.game-content{flex-direction:row;align-items:flex-start}.board-section{flex:none}.sidebar{flex:1;min-width:280px;max-width:350px}}.game-header{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.header-content{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.header-center{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.player-info{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex}.player-info.active{background-color:var(--color-primary-light)}.player-avatar{border-radius:var(--radius-full);background-color:var(--bg-tertiary);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.avatar-piece{font-size:var(--text-2xl)}.avatar-piece.white{color:var(--color-gray-700)}.avatar-piece.black{color:var(--color-gray-800)}.player-details{flex-direction:column;display:flex}.player-name{font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.difficulty-label{color:var(--text-secondary);margin-left:var(--spacing-xs);font-weight:400}.player-rating{font-size:var(--text-xs);color:var(--text-secondary)}.turn-indicator{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--radius-full);display:flex}.turn-dot{border-radius:var(--radius-full);width:12px;height:12px;transition:all var(--transition-fast)}.turn-dot.white{background-color:var(--color-gray-200);border:2px solid var(--color-gray-400)}.turn-dot.black{background-color:var(--color-gray-800);border:2px solid var(--color-gray-600)}.turn-dot.thinking{animation:1s ease-in-out infinite pulse}.turn-text{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.check-indicator{font-size:var(--text-xs);color:var(--color-danger);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-danger-light);border-radius:var(--radius-sm);font-weight:600}@media (width<=768px){.game-header{padding:var(--spacing-sm)}.header-content{gap:var(--spacing-sm);flex-direction:column}.player-info{justify-content:flex-start;width:100%}}.board-container{-webkit-user-select:none;user-select:none;position:relative}.board{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-sm);flex-direction:column;display:flex}.board-labels{padding:0 var(--spacing-xs);align-items:center;display:flex}.board-labels-top,.board-labels-bottom{height:20px}.corner-label{width:20px}.file-label{width:var(--square-size);text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);text-transform:lowercase;font-weight:600}.board-main{display:flex}.rank-labels{flex-direction:column;width:20px;display:flex}.rank-label{height:var(--square-size);font-size:var(--text-xs);color:var(--text-tertiary);justify-content:center;align-items:center;font-weight:600;display:flex}.squares-container{border-radius:var(--radius-sm);flex-direction:column;display:flex;overflow:hidden}.board-row{display:flex}.square{width:var(--square-size);height:var(--square-size);cursor:pointer;transition:background-color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:relative}.square.light{background-color:var(--light-square)}.square.dark{background-color:var(--dark-square)}.square.selected{background-color:var(--selected-color)!important}.square.last-move{background-color:var(--last-move-color)!important}.square.in-check{background-color:var(--check-color)!important}.square.disabled{cursor:not-allowed}.square:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px;z-index:1}.piece{font-size:calc(var(--square-size) * .8);z-index:1;pointer-events:none;transition:transform var(--transition-fast);line-height:1}.piece.white{color:var(--color-white);text-shadow:-1px -1px 0 var(--color-gray-600), 1px -1px 0 var(--color-gray-600), -1px 1px 0 var(--color-gray-600), 1px 1px 0 var(--color-gray-600)}.piece.black{color:var(--color-gray-800);text-shadow:-1px -1px 0 var(--color-gray-400), 1px -1px 0 var(--color-gray-400), -1px 1px 0 var(--color-gray-400), 1px 1px 0 var(--color-gray-400)}.legal-move-indicator{background-color:var(--legal-move-color);border-radius:var(--radius-full);pointer-events:none;width:30%;height:30%;position:absolute}.square.legal-capture .legal-move-indicator{display:none}.square.legal-capture:after{content:"";border:4px solid var(--legal-move-color);border-radius:var(--radius-sm);pointer-events:none;position:absolute;inset:0}.ai-thinking-overlay{justify-content:center;align-items:center;gap:var(--spacing-md);border-radius:var(--radius-lg);color:var(--color-white);background-color:#0000004d;flex-direction:column;font-weight:500;display:flex;position:absolute;inset:0}.ai-thinking-spinner{border:4px solid #ffffff4d;border-top-color:var(--color-white);border-radius:var(--radius-full);width:40px;height:40px;animation:1s linear infinite spin}.game-controls{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-md)}.controls-row{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.controls-row+.controls-row{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}@media (width<=768px){.control-btn .btn-text{display:none}.control-btn{padding:var(--spacing-sm)}}.settings-panel{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:300px;box-shadow:var(--shadow-xl);z-index:100;margin-top:var(--spacing-sm);position:absolute;top:100%;right:0}.settings-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.settings-header h3{font-size:var(--text-lg);font-weight:600}.settings-content{padding:var(--spacing-md)}.setting-group{margin-bottom:var(--spacing-lg)}.setting-group:last-child{margin-bottom:0}.theme-options{gap:var(--spacing-sm);grid-template-columns:repeat(5,1fr);display:grid}.theme-option{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:2px solid #0000;flex-direction:column;display:flex}.theme-option:hover{background-color:var(--bg-tertiary)}.theme-option.active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.theme-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-preview{border-radius:var(--radius-sm);grid-template-columns:repeat(2,1fr);width:32px;height:32px;display:grid;overflow:hidden}.preview-square{width:16px;height:16px}.theme-name{font-size:var(--text-xs);color:var(--text-secondary)}.move-history{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;max-height:300px;padding:0;display:flex}.history-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.history-title{font-size:var(--text-base);font-weight:600}.history-list{padding:var(--spacing-sm);flex:1;overflow-y:auto}.history-list-header{gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-sm);grid-template-columns:2rem 1fr 1fr;font-weight:600;display:grid}.move-pair{gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);grid-template-columns:2rem 1fr 1fr;display:grid}.move-pair:hover{background-color:var(--bg-tertiary)}.move-number-col{color:var(--text-tertiary);font-size:var(--text-sm)}.white-move,.black-move{font-family:Courier New,Courier,monospace;font-size:var(--text-sm)}.move-item.current{background-color:var(--color-primary-light);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-weight:600}.history-empty{padding:var(--spacing-xl);color:var(--text-tertiary);justify-content:center;align-items:center;font-style:italic;display:flex}.game-result-indicator{padding:var(--spacing-md);text-align:center;border-top:1px solid var(--border-color);margin-top:var(--spacing-sm);font-weight:600}@media (width<=768px){.move-history{max-height:200px}}@media (width>=1024px){.move-history{max-height:400px}}.dialog-overlay{z-index:100;background:0 0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:16px;display:none;position:fixed;inset:0}.dialog-overlay[open]{justify-content:center;align-items:center;display:flex}.dialog-overlay::backdrop{-webkit-backdrop-filter:blur(6px);background:#0006;animation:.2s ease-out dialog-fade-in}.dialog-content{background:var(--surface-elevated);color:var(--text-primary);border:1px solid var(--border-subtle);width:100%;max-width:400px;max-height:calc(100dvh - 32px);animation:dialog-slide-in .2s var(--easing-decelerate);will-change:transform, opacity;backface-visibility:hidden;border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 8px 28px #00000029}.dialog-content.dialog-sm{max-width:320px}.dialog-content.dialog-md{max-width:400px}.dialog-content.dialog-lg{max-width:500px}.dialog-header{justify-content:space-between;align-items:center;padding:24px 24px 8px;display:flex}.dialog-title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:18px;font-weight:600}.dialog-close{width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-secondary);appearance:none;cursor:pointer;background:#ffffff14;border:1px solid #0000;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;padding:0;line-height:0;transition:all .15s ease-out;display:flex}.dialog-close:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff24}.dialog-close:active{background:#fff3}.dialog-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-color-scheme:light){.dialog-close{background:#0000000d}.dialog-close:hover{background:#0000001a}.dialog-close:active{background:#00000026}}.dialog-close{color:var(--text-tertiary);background:0 0}.dialog-close:hover{color:var(--text-primary)}.dialog-close svg{flex-shrink:0;width:20px;height:20px}.dialog-drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;padding:8px 0 4px;display:none}.dialog-drag-handle:active{cursor:grabbing}.dialog-drag-handle-bar{background:var(--text-tertiary,#ffffff4d);opacity:.6;border-radius:2px;width:36px;height:4px;margin:0 auto;display:block}.dialog-content{transition:transform .2s var(--easing-standard)}.dialog-content.dialog-content--dragging{transition:none}.dialog-body{overscroll-behavior:contain;padding:24px;padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.dialog-footer{flex-shrink:0;justify-content:flex-end;gap:12px;padding:8px 24px 24px;display:flex}.dialog-overlay.dialog-sheet[open]{align-items:flex-end;padding:0}.dialog-overlay.dialog-sheet .dialog-content{border-radius:12px 12px 0 0;max-width:none;max-height:calc(100dvh - 32px)}.dialog-overlay.dialog-sheet .dialog-drag-handle{display:block}.dialog-overlay.dialog-sheet .dialog-footer,.dialog-overlay.dialog-sheet .dialog-body:last-child{padding-bottom:max(24px, env(safe-area-inset-bottom))}.dialog-overlay.dialog-fullscreen[open]{justify-content:stretch;align-items:stretch;padding:0}.dialog-overlay.dialog-fullscreen .dialog-content{border:none;border-radius:0;max-width:none;max-height:100dvh}.dialog-overlay.dialog-fullscreen .dialog-header{padding-top:max(20px, env(safe-area-inset-top));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.dialog-overlay.dialog-fullscreen .dialog-footer{padding-bottom:max(24px, env(safe-area-inset-bottom));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.dialog-overlay.dialog-fullscreen .dialog-body:last-child{padding-bottom:max(24px, env(safe-area-inset-bottom))}@media (width<=480px){.dialog-overlay.dialog-centered[open]{align-items:flex-end;padding:0}.dialog-overlay.dialog-centered .dialog-content{border-radius:12px 12px 0 0;max-width:none;max-height:calc(100dvh - 32px)}.dialog-overlay.dialog-centered .dialog-drag-handle{display:block}.dialog-overlay.dialog-centered .dialog-footer,.dialog-overlay.dialog-centered .dialog-body:last-child{padding-bottom:max(24px, env(safe-area-inset-bottom))}}@media (height<=480px) and (orientation:landscape){.dialog-overlay[open]{justify-content:stretch;align-items:stretch;padding:0}.dialog-overlay .dialog-content{border:none;border-radius:0;max-width:none;max-height:100dvh}.dialog-overlay .dialog-drag-handle{display:none}.dialog-overlay .dialog-header{padding-top:max(20px, env(safe-area-inset-top));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.dialog-overlay .dialog-footer{padding-bottom:max(24px, env(safe-area-inset-bottom));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}}@media (prefers-reduced-motion:reduce){.dialog-content,.dialog-overlay::backdrop{animation:none}.dialog-content{transition:none}}.toast-container{top:calc(24px + env(safe-area-inset-top));z-index:200;pointer-events:none;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--surface-elevated);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);pointer-events:auto;cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 20px;transition:all .15s ease-out;display:flex;box-shadow:0 4px 16px #0000004d}.toast:hover{transform:scale(1.02)}@media (prefers-color-scheme:light){.toast{box-shadow:0 4px 16px #00000026}}.toast-message{color:var(--text-primary);white-space:nowrap;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500}.toast-success{border-left:3px solid var(--color-success)}.toast-success .toast-message{color:var(--color-success)}.toast-info{border-left:3px solid var(--color-info)}.toast-info .toast-message{color:var(--color-info)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-warning .toast-message{color:var(--color-warning)}.toast-error{border-left:3px solid var(--color-danger)}.toast-error .toast-message{color:var(--color-danger)}.toast-enter{animation:.2s ease-out toast-slide-in}.toast-exit{animation:.2s ease-in forwards toast-slide-out}@media (prefers-reduced-motion:reduce){.toast-enter,.toast-exit{animation:none}}.game-result-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100}.game-result-modal{text-align:center;background:linear-gradient(135deg, var(--surface-secondary) 0%, var(--surface-primary) 100%);border-radius:16px;width:90%;max-width:360px;padding:0;overflow:hidden;box-shadow:0 20px 60px #00000080}.game-result-modal.animating{animation:resultBounce var(--transition-slow)}.game-result-modal.win{border:3px solid var(--color-success)}.game-result-modal.win .result-title{color:var(--color-success)}.game-result-modal.loss{border:3px solid var(--color-danger)}.game-result-modal.loss .result-title{color:var(--color-danger)}.game-result-modal.draw{border:3px solid var(--color-info)}.game-result-modal.draw .result-title{color:var(--color-info)}.result-header{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-md)}.result-title{font-size:var(--text-2xl);margin-bottom:var(--spacing-sm);font-weight:700}.result-icon{font-size:var(--text-4xl)}.result-icon-large{font-size:4rem;line-height:1;animation:.6s ease-out result-icon-bounce}.result-content{flex-direction:column;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.result-message{padding:0 var(--spacing-lg) var(--spacing-lg);color:var(--text-secondary);text-align:center;margin:0;font-size:1.125rem;line-height:1.6}.result-stats{padding:var(--spacing-lg);background-color:var(--bg-tertiary);border-radius:12px;flex-direction:column;gap:1rem;width:100%;display:flex}@media (prefers-color-scheme:light){.result-stats{background:#0000000a}}.stat-row{padding:var(--spacing-sm) 0;justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.stat-row:not(:last-child){border-bottom:1px solid var(--border-color)}.stat-row.record{border-top:1px solid var(--border-subtle);padding-top:.75rem}.stat-row.record .stat-value{gap:var(--spacing-sm);display:flex}.stat-row.record .wins{color:var(--color-success)}.stat-row.record .losses{color:var(--color-danger)}.stat-row.record .draws{color:var(--color-info)}.stat-row.record .separator{color:var(--text-tertiary);margin:0 .5rem}@media (prefers-color-scheme:light){.stat-row.record .separator{color:#0000004d}}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.stat-value{color:var(--text-primary);font-size:.875rem;font-weight:600}.rating-change{flex-direction:column;align-items:flex-end;display:flex}.rating-values{align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);display:flex}.old-rating,.rating-arrow{color:var(--text-tertiary)}.new-rating{font-weight:700}.rating-delta{font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-weight:600}.rating-delta.positive{background-color:var(--color-success-light);color:var(--color-success)}.rating-delta.negative{background-color:var(--color-danger-light);color:var(--color-danger)}.rating-delta.neutral{background-color:var(--bg-tertiary);color:var(--text-secondary)}.streak-display{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:linear-gradient(135deg, var(--color-warning) 0%, #f97316 100%);color:var(--color-white);border-radius:var(--radius-md);margin-top:var(--spacing-sm);display:flex}.streak-emoji{font-size:var(--text-xl)}.streak-text{font-weight:600}.win-streak-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:linear-gradient(135deg, var(--color-warning) 0%, #f97316 100%);border-radius:var(--radius-full);color:var(--color-white);font-size:var(--text-xs);font-weight:600;display:flex}.streak-icon{font-size:var(--text-sm)}.result-actions{gap:.75rem;width:100%;display:flex}.result-actions--compact{align-items:stretch}.result-actions .btn{cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.result-actions .btn:disabled{opacity:.5;cursor:not-allowed}.result-actions .btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);color:var(--on-primary)}.result-actions .btn-primary:hover:not(:disabled){box-shadow:0 8px 20px color-mix(in srgb, var(--color-primary) 40%, transparent);transform:translateY(-2px)}.result-actions .btn-secondary{color:#fff;border:1px solid var(--border-default);background:#ffffff1a}.result-actions .btn-secondary:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}@media (prefers-color-scheme:light){.result-actions .btn-secondary{color:var(--text-primary);background:#00000014;border-color:#00000026}.result-actions .btn-secondary:hover:not(:disabled){background:#0000001f;border-color:#0003}}.result-actions .btn-icon{font-size:1.125rem}.result-menu{display:flex;position:relative}.result-menu-list{z-index:10;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;min-width:12rem;padding:.375rem;display:flex;position:absolute;bottom:calc(100% + .5rem);right:0;box-shadow:0 8px 28px #0000003d}.result-menu-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.625rem;padding:.75rem .875rem;font-size:.9375rem;font-weight:500;transition:background .15s;display:flex}.result-menu-item .btn-icon{font-size:1.125rem}.result-menu-item:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 8%, transparent)}.result-menu-item:disabled{opacity:.5;cursor:not-allowed}.auto-restart-countdown{opacity:.8;margin-left:.25rem;font-size:.875rem;font-weight:400}.celebration-animation{pointer-events:none;z-index:99;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.celebration-particle{border-radius:var(--radius-full);background:linear-gradient(135deg,gold,#ffb700);width:10px;height:10px;animation:1.5s ease-out forwards confetti;position:absolute}.celebration-particle:nth-child(odd){background:linear-gradient(135deg,#ff6b6b,#ee5a24)}.celebration-particle:nth-child(3n){background:linear-gradient(135deg,#4ecdc4,#44bd32)}@media (width<=480px){.game-result-modal{width:95%;max-width:none}.result-content{gap:1rem;padding:1rem}.result-icon-large{font-size:3rem}.result-message{font-size:1rem}.result-actions{flex-wrap:wrap}.result-actions .result-menu{flex-shrink:0}}@media (prefers-reduced-motion:reduce){.result-icon-large,.celebration-animation{animation:none}}.promotion-overlay{z-index:150;background-color:#000000b3}.promotion-dialog{left:var(--target-left);background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--spacing-md);animation:popIn var(--transition-fast);position:absolute;transform:translate(-50%)}.promotion-dialog.above{bottom:60%}.promotion-dialog.below{top:60%}.promotion-title{font-size:var(--text-sm);text-align:center;margin-bottom:var(--spacing-md);color:var(--text-secondary);font-weight:600}.promotion-options{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.promotion-option{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-height:44px;padding:12px 8px;transition:all .15s ease-out;display:flex}.promotion-option:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.promotion-option{background:#0000000a}.promotion-option:hover{background:#00000014}}.promotion-option{cursor:pointer}.promotion-option:hover{border-color:color-mix(in srgb, var(--color-primary) 50%, transparent)}.promotion-option:focus{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);outline:none}.promotion-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.promotion-piece-img{object-fit:contain;width:48px;height:48px}.promotion-piece-square{box-sizing:border-box;border-radius:8px;justify-content:center;align-items:center;width:46px;height:46px;padding:3px;display:flex}.promotion-piece-square .promotion-piece-img{width:40px;height:40px}.promotion-piece{font-size:40px;line-height:1}.promotion-piece.white{color:#fff;text-shadow:0 2px 4px #0000004d}.promotion-piece.black{color:#333}.promotion-option.white .promotion-piece{color:var(--color-gray-300);text-shadow:-1px -1px 0 var(--color-gray-600), 1px -1px 0 var(--color-gray-600), -1px 1px 0 var(--color-gray-600), 1px 1px 0 var(--color-gray-600)}.promotion-option.black .promotion-piece{color:var(--color-gray-800)}.promotion-label{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:11px;font-weight:500}.promotion-shortcut{font-size:var(--text-xs);color:var(--text-tertiary,var(--color-gray-400));opacity:.7;font-family:monospace}.promotion-cancel{width:100%;margin-top:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:block}.promotion-cancel:hover{background-color:var(--bg-tertiary)}@media (width<=768px){.promotion-dialog{position:fixed;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.promotion-dialog.above,.promotion-dialog.below{top:50%;bottom:auto}}@media (width<=480px){.promotion-options{grid-template-columns:repeat(2,1fr);gap:12px}.promotion-option{min-width:60px;min-height:60px;padding:14px 10px}}@media (height<=480px) and (orientation:landscape){.promotion-options{grid-template-columns:repeat(4,1fr);gap:6px}.promotion-option{min-height:44px;padding:8px 6px}.promotion-label{font-size:10px}.promotion-shortcut{font-size:9px}}.error-boundary{padding:24px;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:var(--bg-primary);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.error-boundary-content{text-align:center;background:var(--surface-tertiary);border:1px solid var(--border-subtle);border-radius:16px;width:100%;max-width:420px;padding:32px 24px;box-shadow:0 16px 48px #0006}.error-boundary-title{color:var(--text-primary);margin:0 0 12px;font-family:system-ui,-apple-system,sans-serif;font-size:22px;font-weight:600}.error-boundary-message{color:var(--text-secondary);margin:0 0 20px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}.error-boundary-detail{text-align:left;max-height:160px;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-subtle);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:0 0 20px;padding:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;line-height:1.4;overflow:auto}.error-boundary-button{width:100%;min-height:44px;color:var(--on-primary);background:var(--color-primary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:12px 24px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;transition:background .15s ease-out;display:flex}.error-boundary-button:hover{background:var(--color-primary-hover)}.error-boundary-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-primary:#0284c7;--color-primary-hover:#0369a1;--color-primary-light:#e0f2fe;--color-accent:#7c3aed;--color-accent-hover:#6d28d9;--color-accent-light:#ede9fe;--color-secondary:#6b7280;--color-secondary-hover:#4b5563;--color-success:#059669;--color-success-light:#d1fae5;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-info:#2563eb;--color-info-light:#dbeafe;--on-primary:#fff;--on-accent:#fff;--on-success:#fff;--on-danger:#fff;--on-warning:#1f2937;--on-info:#fff;--color-white:#fff;--color-black:#000;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--bg-primary:var(--color-white);--bg-secondary:var(--color-gray-50);--bg-tertiary:var(--color-gray-100);--text-primary:var(--color-gray-900);--text-secondary:var(--color-gray-600);--text-tertiary:var(--color-gray-400);--text-inverse:var(--color-white);--border-color:var(--color-gray-200);--border-color-hover:var(--color-gray-300);--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--board-size:min(90vw, 500px);--square-size:calc(var(--board-size) / 8);--easing-standard:cubic-bezier(.4, 0, .2, 1);--easing-decelerate:cubic-bezier(0, 0, .2, 1);--easing-accelerate:cubic-bezier(.4, 0, 1, 1);--surface-primary:#fff;--surface-secondary:#f5f5f5;--surface-tertiary:#eee;--surface-elevated:#fff;--border-subtle:#00000014;--border-default:#00000026}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--surface-primary:#0f141a;--surface-secondary:#161c24;--surface-tertiary:#1c252f;--surface-elevated:#232e3a;--bg-primary:var(--surface-primary);--bg-secondary:var(--surface-secondary);--bg-tertiary:var(--surface-tertiary);--border-subtle:#ffffff14;--border-default:#ffffff29;--border-color:#ffffff1f;--border-color-hover:#ffffff38;--text-primary:#fffffff2;--text-secondary:#ffffffb3;--text-tertiary:#ffffff80;--color-primary:#38bdf8;--color-primary-hover:#0ea5e9;--color-primary-light:#38bdf82e;--color-accent:#a78bfa;--color-accent-hover:#c4b5fd;--color-accent-light:#a78bfa33;--color-success:#34d399;--color-success-light:#34d39933;--color-danger:#f87171;--color-danger-light:#f8717133;--color-warning:#fbbf24;--color-warning-light:#fbbf242e;--color-info:#60a5fa;--color-info-light:#60a5fa33;--on-primary:#000000e0;--on-accent:#000000e0;--on-success:#000000e0;--on-danger:#000000e0;--on-warning:#000000e0;--on-info:#000000e0}}@media (prefers-color-scheme:light){:root{--surface-primary:#fff;--surface-secondary:#f5f5f5;--surface-tertiary:#eee;--surface-elevated:#fff;--border-subtle:#00000014;--border-default:#00000026;--text-primary:#000000e6;--text-secondary:#0009;--text-tertiary:#0006}}@media (width>=768px){:root{--board-size:min(60vw, 560px)}}@media (width>=1024px){:root{--board-size:min(50vw, 600px)}}.fullscreen-mode body{margin:0;padding:0;overflow:hidden}.fullscreen-board-container{background:var(--surface-primary);width:100vw;height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.fullscreen-board-container:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(#0000 50%,#0000004d 100%);position:absolute;inset:0}@media (prefers-color-scheme:light){.fullscreen-board-container:before{background:radial-gradient(#0000 50%,#0000001a 100%)}}.fullscreen-board-wrapper{aspect-ratio:1;z-index:2;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);position:relative}@media (width<=768px){.fullscreen-board-wrapper{max-width:calc(100vw - 16px);max-height:calc(100vh - 16px)}}.fullscreen-board-canvas{border-radius:4px;width:100%;height:100%;display:block;box-shadow:0 8px 32px #00000080}.what-if-preview{color:#fff;white-space:nowrap;z-index:5;background:#141418eb;border-radius:6px;flex-direction:column;align-items:center;gap:2px;margin-top:-6px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #0006}.what-if-preview .what-if-preview-capture{color:var(--color-warning)}.what-if-preview .what-if-preview-check{color:var(--color-danger)}.control-overlay{pointer-events:none;z-index:10;transition:opacity .2s ease-out;position:fixed;inset:0}.control-overlay.hidden{opacity:0}.control-overlay.visible{opacity:1}.control-top-bar{padding:16px 24px;padding-top:calc(16px + env(safe-area-inset-top));pointer-events:auto;background:linear-gradient(#0009 0%,#0000 100%);justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}@media (prefers-color-scheme:light){.control-top-bar{background:linear-gradient(#ffffffe6 0%,#0000 100%)}}.player-info{color:var(--text-primary);align-items:center;gap:12px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;display:flex}.player-indicator{border:2px solid #ffffff4d;border-radius:50%;width:12px;height:12px}.player-indicator.white{background:#fff}.player-indicator.black{background:#333}.player-indicator.active{animation:1.5s ease-in-out infinite pulse-glow;box-shadow:0 0 8px}@media (prefers-color-scheme:light){.player-indicator{border-color:#0003}}.game-status{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;background:#ffffff1a;border-radius:16px;padding:6px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500}.game-status.check{background:color-mix(in srgb, var(--color-danger) 30%, transparent);color:var(--color-danger)}.game-status.checkmate{background:color-mix(in srgb, var(--color-danger) 50%, transparent);color:var(--text-primary)}.game-status.draw{background:color-mix(in srgb, var(--color-warning) 30%, transparent);color:var(--color-warning)}@media (prefers-color-scheme:light){.game-status{background:#00000014}}.move-drawer-backdrop{opacity:0;visibility:hidden;z-index:20;background:#00000080;transition:opacity .2s ease-out,visibility .2s ease-out;position:fixed;inset:0}.move-drawer-backdrop.open{opacity:1;visibility:visible}.move-drawer{background:var(--surface-secondary);width:320px;max-width:85vw;transition:transform .25s var(--easing-standard);z-index:21;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 16px #0000004d}.move-drawer.open{transform:translate(0)}@media (width<=480px){.move-drawer{width:100%;max-width:none}}.move-drawer-header{padding:20px;padding-top:calc(20px + env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.move-drawer-title{color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:18px;font-weight:600}.move-drawer-close{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--text-secondary);appearance:none;cursor:pointer;background:#ffffff14;border:1px solid #0000;border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;padding:0;line-height:0;transition:all .15s ease-out;display:flex}.move-drawer-close:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff24}.move-drawer-close:active{background:#fff3}.move-drawer-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-color-scheme:light){.move-drawer-close{background:#0000000d}.move-drawer-close:hover{background:#0000001a}.move-drawer-close:active{background:#00000026}}.move-drawer-close svg{flex-shrink:0;width:24px;height:24px}.move-drawer-content{-webkit-overflow-scrolling:touch;flex:1;padding:16px;overflow-y:auto}.move-list{flex-direction:column;gap:4px;display:flex}.move-row{background:#ffffff0d;border-radius:8px;grid-template-columns:36px 1fr 1fr;align-items:center;gap:8px;padding:8px 12px;transition:all .15s ease-out;display:grid}.move-row:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.move-row{background:#0000000a}.move-row:hover{background:#00000014}}.move-number{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500}.move-notation{color:var(--text-primary);font-family:SF Mono,Monaco,Menlo,monospace;font-size:14px}.move-notation.white{color:var(--text-primary)}.move-notation.black{color:var(--text-secondary)}.move-notation.last{background:var(--color-success-light);border-radius:4px;padding:2px 6px}.move-drawer-empty{height:200px;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;font-family:system-ui,-apple-system,sans-serif;font-size:14px;display:flex}.move-drawer-commentary{border:1px solid var(--color-success);background:var(--color-success-light);border-radius:10px;margin:0 20px 12px;padding:12px}.move-drawer-commentary-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px;font-family:system-ui,-apple-system,sans-serif;font-size:11px;font-weight:700;display:block}.move-drawer-commentary-text{color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.4}.move-drawer-footer{padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle)}.export-pgn-btn{width:100%;color:var(--text-primary);cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:12px 16px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500;transition:all .15s ease-out;display:flex}.export-pgn-btn:hover{background:#fff3}.export-pgn-btn:active{background:#ffffff26}.export-pgn-btn svg{width:18px;height:18px}@media (prefers-color-scheme:light){.export-pgn-btn{background:#00000014}.export-pgn-btn:hover{background:#0000001f}.export-pgn-btn:active{background:#00000026}}.turn-indicator{-webkit-backdrop-filter:blur(8px);z-index:5;pointer-events:none;background:#0009;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;transition:all .2s ease-out;display:flex;position:absolute;left:50%;transform:translate(-50%)}.turn-indicator.top{top:16px}.turn-indicator.bottom{bottom:16px}.turn-indicator.check .turn-indicator-dot{animation:.6s ease-in-out infinite check-pulse}.turn-indicator.thinking{background:#000000bf;animation:2s ease-in-out infinite thinking-glow}@media (prefers-color-scheme:light){.turn-indicator{background:#ffffffe6;box-shadow:0 2px 8px #00000026}.turn-indicator.thinking{background:#fffffff2;animation:2s ease-in-out infinite thinking-glow-light}}.turn-indicator-dot{border-radius:50%;width:10px;height:10px;transition:all .2s ease-out}.turn-indicator-dot.white{background:#fff;box-shadow:0 0 8px #ffffff80}.turn-indicator-dot.black{background:#444;box-shadow:0 0 8px #44444480}.turn-indicator-text{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500}.thinking-spinner{border:2px solid var(--border-default);border-top-color:var(--text-primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@media (width<=480px){.control-top-bar{padding:12px 16px}.player-info{font-size:13px}.game-status{padding:4px 10px;font-size:11px}.turn-indicator{padding:6px 12px}.turn-indicator-dot{width:8px;height:8px}.turn-indicator-text{font-size:11px}}@media (height<=480px) and (orientation:landscape){.control-top-bar{padding-top:8px;padding-bottom:8px}.fullscreen-board-wrapper{max-height:calc(100vh - 8px)}}@media (prefers-contrast:high){.game-status{border:1px solid}}@media (prefers-reduced-motion:reduce){.control-overlay,.move-drawer,.move-drawer-backdrop,.turn-indicator,.turn-indicator-dot,.player-indicator{transition:none}.player-indicator.active,.turn-indicator.check .turn-indicator-dot,.turn-indicator.thinking,.thinking-spinner{animation:none}}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:0}.settings-modal .settings-tabs{z-index:2;background:var(--surface-tertiary);border-bottom:1px solid var(--border-subtle);scrollbar-width:none;gap:4px;margin:-24px -24px 20px;padding:12px 16px;display:flex;position:sticky;top:-24px;overflow-x:auto}.settings-modal .settings-tabs::-webkit-scrollbar{display:none}.settings-modal .settings-tabpanel:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:8px}.settings-tab{min-width:60px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:8px 6px;font-family:system-ui,-apple-system,sans-serif;transition:background .15s ease-out,color .15s ease-out;display:flex}.settings-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.settings-tab:hover{color:var(--text-primary);background:#ffffff0f}.settings-tab.active{color:var(--color-primary);background:var(--color-success-light)}@media (prefers-color-scheme:light){.settings-tab:hover{background:#0000000d}}.settings-tab-icon{justify-content:center;align-items:center;display:flex}.settings-tab-label{white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2}.new-game-error-message{border:1px solid color-mix(in srgb, var(--color-danger) 55%, transparent);background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.4}.settings-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:600;display:block}.settings-sub-label{color:var(--text-secondary);margin:10px 0 6px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:600;display:block}.openai-settings-form{margin-top:12px}.settings-input{border:1px solid var(--border-default);width:100%;min-height:42px;color:var(--text-primary);background:#00000038;border-radius:10px;padding:10px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:14px}.settings-input::placeholder{color:var(--text-secondary)}.settings-input:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px;border-color:#0000}.settings-input:disabled{opacity:.65;cursor:not-allowed}@media (prefers-color-scheme:light){.settings-input{background:#ffffffd9}}.settings-input-hint{color:var(--text-secondary);margin-top:8px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;line-height:1.4}.settings-range-group{align-items:center;gap:12px;margin-top:8px;display:flex}.settings-range{flex:1;min-width:0}.settings-range:disabled{opacity:.4;cursor:not-allowed}.settings-range-value{font-variant-numeric:tabular-nums;min-width:3ch;color:var(--text-secondary);text-align:right;font-family:system-ui,-apple-system,sans-serif;font-size:12px}.openai-model-pool{gap:8px;margin-top:10px;display:grid}.openai-model-pool-item{color:var(--text-primary);align-items:center;gap:8px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;display:flex}.openai-model-pool-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;margin:0}.openai-model-pool.disabled{opacity:.65}.openai-model-pool.disabled .openai-model-pool-item input[type=checkbox]{cursor:not-allowed}.settings-input-error{color:var(--color-danger)}.settings-button-secondary{border:1px solid var(--border-default);min-height:42px;color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:8px 14px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:600;transition:all .15s ease-out}.settings-button-secondary:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.settings-button-secondary{background:#0000000a}.settings-button-secondary:hover{background:#00000014}}.settings-button-secondary.active{border-color:var(--color-primary);background:var(--color-primary-light)}.settings-button-secondary:disabled{opacity:.6;cursor:not-allowed}.settings-button-secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.openai-provider-presets{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.openai-provider-presets .settings-input-hint{flex:1;min-width:160px;margin-top:0}.gateway-model-browser{margin-top:10px}.gateway-model-browser-toolbar{align-items:stretch;gap:8px;display:flex}.gateway-model-browser-toolbar .settings-input{flex:1}.gateway-model-list{gap:8px;max-height:320px;margin:10px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.gateway-model-item{text-align:left;border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;transition:all .15s ease-out;display:flex}.gateway-model-item:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.gateway-model-item{background:#0000000a}.gateway-model-item:hover{background:#00000014}}.gateway-model-item.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.gateway-model-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.gateway-model-item-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.gateway-model-name{font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600}.gateway-model-provider{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);font-size:11px;font-weight:600}.gateway-model-id{color:var(--text-secondary);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.gateway-model-meta{font-variant-numeric:tabular-nums;color:var(--text-secondary);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px;display:grid}@media (width<=480px){.theme-grid{grid-template-columns:repeat(3,1fr)}}.theme-button{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;transition:all .15s ease-out;display:flex}.theme-button:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.theme-button{background:#0000000a}.theme-button:hover{background:#00000014}}.theme-button{cursor:pointer}.theme-button.active{border-color:var(--color-primary);background:var(--color-success-light)}.theme-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-preview-squares{border-radius:4px;grid-template-columns:1fr 1fr;width:40px;height:40px;display:grid;overflow:hidden}.theme-preview-squares .preview-square{width:20px;height:20px}.theme-label{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:11px}.piece-set-preview{object-fit:contain;width:40px;height:40px}.difficulty-buttons{flex-direction:column;gap:8px;display:flex}.difficulty-button{background:#ffffff0d;border:2px solid #0000;border-radius:10px;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:12px 16px;transition:all .15s ease-out;display:grid}.difficulty-button:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.difficulty-button{background:#0000000a}.difficulty-button:hover{background:#00000014}}.difficulty-button{cursor:pointer;text-align:left}.difficulty-button.active{border-color:var(--color-primary);background:var(--color-success-light)}.difficulty-button.active .difficulty-level{background:var(--color-primary)}.difficulty-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-level{width:28px;height:28px;color:var(--text-primary);background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600;display:flex}@media (prefers-color-scheme:light){.difficulty-level{background:#00000014}}.difficulty-name{color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500}.difficulty-elo{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:12px}.mode-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-buttons-3{grid-template-columns:repeat(3,1fr);gap:8px}.mode-button{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;transition:all .15s ease-out;display:flex}.mode-button:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.mode-button{background:#0000000a}.mode-button:hover{background:#00000014}}.mode-button{cursor:pointer}.mode-button.active{border-color:var(--color-primary);background:var(--color-success-light)}.mode-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mode-icon{font-size:28px}.mode-text{color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500}.ai-vs-ai-icons{color:var(--text-primary);align-items:center;gap:4px;display:flex}.vs-text{opacity:.7;font-size:10px;font-weight:600}.ai-player-config{flex-direction:column;gap:10px;display:flex}.ai-type-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ai-type-button{background:#ffffff0d;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 12px;transition:all .15s ease-out;display:flex}.ai-type-button:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.ai-type-button{background:#0000000a}.ai-type-button:hover{background:#00000014}}.ai-type-button{color:var(--text-secondary);cursor:pointer;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500}.ai-type-button.active{border-color:var(--color-primary);background:var(--color-success-light);color:var(--color-primary)}.ai-type-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.difficulty-compact{justify-content:center;gap:6px;display:flex}.difficulty-pip-small{background:#ffffff0d;border:2px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:32px;min-height:44px;transition:all .15s ease-out;display:flex}.difficulty-pip-small:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.difficulty-pip-small{background:#0000000a}.difficulty-pip-small:hover{background:#00000014}}.difficulty-pip-small{color:var(--text-secondary);cursor:pointer;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:600}.difficulty-pip-small:hover{color:var(--text-primary)}.difficulty-pip-small.active{border-color:var(--color-primary);background:var(--color-success-light);color:var(--color-primary)}.ml-model-info{text-align:center;color:var(--text-secondary);padding:8px;font-size:12px;font-style:italic}.color-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}.color-button{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:16px;transition:all .15s ease-out;display:flex}.color-button:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.color-button{background:#0000000a}.color-button:hover{background:#00000014}}.color-button{cursor:pointer}.color-button.active{border-color:var(--color-primary);background:var(--color-success-light)}.color-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.color-text{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:500}.difficulty-slider-row{gap:8px;margin-bottom:8px;display:flex}.difficulty-pip{height:40px;color:var(--text-secondary);cursor:pointer;background:#ffffff1a;border:2px solid #0000;border-radius:8px;flex:1;justify-content:center;align-items:center;font-family:system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600;transition:all .15s ease-out;display:flex}.difficulty-pip:hover{background:#ffffff26}.difficulty-pip.active{border-color:var(--color-primary);background:var(--color-success-light);color:var(--color-primary)}@media (prefers-color-scheme:light){.difficulty-pip{background:#00000014}.difficulty-pip:hover{background:#0000001f}}.difficulty-info-text{color:var(--text-secondary);text-align:center;font-family:system-ui,-apple-system,sans-serif;font-size:13px}.action-sheet-trigger{bottom:calc(24px + env(safe-area-inset-bottom));z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:#ffffff1f;border:none;border-radius:12px;justify-content:center;align-items:center;padding:0;transition:all .15s ease-out;display:flex;position:fixed;right:24px;box-shadow:0 2px 12px #00000040}.action-sheet-trigger:hover{background:#fff3}.action-sheet-trigger:active{transform:scale(.95)}@media (width<=480px){.action-sheet-trigger{bottom:calc(16px + env(safe-area-inset-bottom));right:16px}}@media (prefers-color-scheme:light){.action-sheet-trigger{background:#00000014;box-shadow:0 2px 12px #0000001a}.action-sheet-trigger:hover{background:#0000001f}}.ai-commentary-dock{right:24px;bottom:calc(80px + env(safe-area-inset-bottom));border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:14;background:#00000085;border-radius:14px;width:min(340px,100vw - 48px);max-height:min(42vh,360px);display:none;position:fixed;overflow:hidden;box-shadow:0 12px 28px #00000059}@media (prefers-color-scheme:light){.ai-commentary-dock{background:#ffffffeb}}.ai-commentary-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding:10px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}.ai-commentary-body{flex-direction:column;gap:8px;max-height:calc(min(42vh,360px) - 43px);padding:10px 12px;display:flex;overflow-y:auto}.ai-commentary-item{border:1px solid var(--border-subtle);background:#ffffff0f;border-radius:10px;padding:8px 10px}@media (prefers-color-scheme:light){.ai-commentary-item{background:#0000000a}}.ai-commentary-meta{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:4px;font-family:system-ui,-apple-system,sans-serif;font-size:10px;font-weight:700;display:block}.ai-commentary-text{color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.35}.ai-commentary-empty{color:var(--text-secondary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:13px}.action-sheet-backdrop{opacity:0;visibility:hidden;z-index:20;background:#00000080;transition:opacity .2s ease-out,visibility .2s ease-out;position:fixed;inset:0}.action-sheet-backdrop.open{opacity:1;visibility:visible}@media (width<=480px){.ai-commentary-dock{display:none}}@media (width>=1024px){.ai-commentary-dock{display:block}}.action-sheet{background:var(--surface-secondary);transition:transform .25s var(--easing-standard);z-index:21;max-height:80vh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}.action-sheet.open{transform:translateY(0)}.action-sheet-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.action-sheet-title{color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600}.action-sheet-close{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--text-secondary);appearance:none;cursor:pointer;background:#ffffff14;border:1px solid #0000;border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;padding:0;line-height:0;transition:all .15s ease-out;display:flex}.action-sheet-close:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff24}.action-sheet-close:active{background:#fff3}.action-sheet-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-color-scheme:light){.action-sheet-close{background:#0000000d}.action-sheet-close:hover{background:#0000001a}.action-sheet-close:active{background:#00000026}}.action-sheet-close svg{flex-shrink:0;width:24px;height:24px}.action-sheet-list{-webkit-overflow-scrolling:touch;flex-direction:column;padding:8px 0;display:flex;overflow-y:auto}.action-sheet-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:16px;padding:14px 20px;transition:background .15s ease-out;display:flex}.action-sheet-item:hover{background:#ffffff0f}.action-sheet-item:active{background:#ffffff1a}.action-sheet-item:disabled{opacity:.4;cursor:not-allowed}.action-sheet-item:disabled:hover{background:0 0}@media (width<=480px){.action-sheet-item{padding:16px 20px}}.action-sheet-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (prefers-color-scheme:light){.action-sheet-item:hover{background:#0000000d}.action-sheet-item:active{background:#00000014}}.action-sheet-item-icon{width:40px;height:40px;color:var(--text-primary);background:#ffffff14;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (width<=480px){.action-sheet-item-icon{width:36px;height:36px}}@media (prefers-color-scheme:light){.action-sheet-item-icon{background:#0000000f}}.action-sheet-item-label{color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:500}.game-rules-panel{width:100%}.game-rules-panel .panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.game-rules-panel .panel-title{color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600}.game-rules-panel .reset-button{border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;transition:all .15s ease-out}.game-rules-panel .reset-button:hover{color:var(--text-primary);background:#ffffff0d;border-color:#fff6}@media (prefers-color-scheme:light){.game-rules-panel .reset-button:hover{background:#0000000a;border-color:#0000004d}}.rules-container{flex-direction:column;gap:20px;display:flex}.rule-category{flex-direction:column;gap:8px;display:flex}.rule-category-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin:0 0 4px;font-family:system-ui,-apple-system,sans-serif;font-size:11px;font-weight:600}.rule-category-items{flex-direction:column;gap:4px;display:flex}.rule-item{background:#ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;transition:all .15s ease-out;display:flex}.rule-item:hover{background:#ffffff1a}@media (prefers-color-scheme:light){.rule-item{background:#0000000a}.rule-item:hover{background:#00000014}}.rule-item.disabled{opacity:.4;pointer-events:none}.rule-item-number{flex-direction:column;align-items:stretch;gap:10px}.rule-item-number .rule-info{width:100%}.rule-item-number.disabled{opacity:.4;pointer-events:none}.rule-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rule-label{color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500}.rule-description{color:var(--text-secondary);font-family:system-ui,-apple-system,sans-serif;font-size:11px;line-height:1.3}.rule-input-group{align-items:center;gap:12px;width:100%;display:flex}.rule-slider{appearance:none;background:#ffffff1a;border-radius:2px;outline:none;flex:1;height:4px}.rule-slider::-webkit-slider-thumb{appearance:none;background:var(--color-primary);cursor:pointer;border-radius:50%;width:28px;height:28px;transition:transform .15s ease-out}.rule-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.rule-slider::-moz-range-thumb{background:var(--color-primary);cursor:pointer;border:none;border-radius:50%;width:28px;height:28px}@media (prefers-color-scheme:light){.rule-slider{background:#0000001a}}.rule-value{color:var(--text-primary);text-align:right;min-width:28px;font-family:system-ui,-apple-system,sans-serif;font-size:14px;font-weight:600}.onboarding-overlay{z-index:250;cursor:pointer;background:#000000bf;justify-content:center;align-items:center;animation:.4s ease-out onboarding-fade-in;display:flex;position:fixed;inset:0}.onboarding-content{text-align:center;flex-direction:column;align-items:center;gap:32px;max-width:320px;padding:32px;display:flex}.onboarding-hints{flex-direction:column;gap:20px;display:flex}.onboarding-hint{align-items:center;gap:16px;animation:.5s ease-out both onboarding-hint-in;display:flex}.onboarding-hint:first-child{animation-delay:.2s}.onboarding-hint:nth-child(2){animation-delay:.4s}.onboarding-hint:nth-child(3){animation-delay:.6s}.onboarding-icon{width:48px;height:48px;color:var(--text-primary);background:#ffffff1a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (prefers-color-scheme:light){.onboarding-icon{background:#00000014}}.onboarding-text{color:var(--text-primary);text-align:left;font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:500}.onboarding-dismiss{color:var(--text-tertiary);margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:13px;animation:.5s ease-out .8s both onboarding-hint-in}@media (prefers-reduced-motion:reduce){.onboarding-overlay,.onboarding-hint,.onboarding-dismiss{animation:none}.action-sheet-trigger,.action-sheet-backdrop,.action-sheet,.action-sheet-close,.action-sheet-item{transition:none}}.multiplayer-panel .mp-section{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:grid}.multiplayer-panel .mp-section:last-child,.multiplayer-panel .mp-section .settings-section{margin-bottom:0}.multiplayer-panel .mp-muted{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.multiplayer-panel .mp-actions{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.multiplayer-panel .mp-actions .modal-button{flex:auto;width:auto}.multiplayer-panel .mp-code{max-height:96px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);font-family:monospace;font-size:var(--text-xs);overflow-wrap:anywhere;word-break:break-all;display:block;overflow-y:auto}.multiplayer-panel .mp-textarea{box-sizing:border-box;width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-family:monospace;font-size:var(--text-xs);resize:vertical}.multiplayer-panel .mp-select{box-sizing:border-box;width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-sm)}.multiplayer-panel .mp-expiry{font-variant-numeric:tabular-nums}.multiplayer-panel .modal-button{gap:var(--spacing-xs);width:100%}.multiplayer-panel .modal-button:disabled{opacity:.5;cursor:not-allowed}.auth-dialog .auth-section{flex-direction:column;gap:12px;display:flex}.auth-dialog .auth-muted{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.auth-dialog .auth-divider{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog .auth-divider:before,.auth-dialog .auth-divider:after{content:"";background:var(--border-subtle,color-mix(in srgb, currentColor 30%, transparent));flex:1;height:1px}.auth-dialog .auth-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-self:center;padding:4px 8px;font-size:13px;font-weight:600}.auth-dialog .auth-link:hover{text-decoration:underline}.auth-dialog .auth-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.account-indicator{border:1px solid var(--border-subtle,color-mix(in srgb, currentColor 20%, transparent));background:var(--surface-raised,transparent);max-width:12rem;color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:600;display:inline-flex}.account-indicator .account-indicator-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-indicator:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.opponent-badge{top:calc(env(safe-area-inset-top,0px) + var(--spacing-md));z-index:16;align-items:center;gap:var(--spacing-sm);max-width:min(80vw,320px);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-full,999px);background:var(--surface-secondary);pointer-events:none;display:inline-flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000040}.opponent-badge-avatar{object-fit:cover;background:var(--bg-tertiary);border-radius:50%;flex:none;width:28px;height:28px}.opponent-badge-avatar--fallback{color:var(--on-primary);background:var(--color-primary);font-size:var(--text-sm);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.opponent-badge-text{flex-direction:column;min-width:0;line-height:1.1;display:flex}.opponent-badge-caption{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.opponent-badge-name{color:var(--text-primary);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}
