/* Ruch v10. Motion marks an action or a changed learning position; nothing loops. */
:root{--motion-quick:140ms;--motion-settle:190ms;--focus-ring:color-mix(in srgb,var(--green) 78%,var(--ink))}
.button,.icon-button,.nav-button,.pill,.appearance-option,.piece-theme-option,.color-theme-option{transition:background-color var(--motion-quick) ease,border-color var(--motion-quick) ease,color var(--motion-quick) ease,transform var(--motion-quick) ease}
.button:not(:disabled):active,.icon-button:not(:disabled):active{transform:translateY(1px)}
:is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
:is(input,textarea)::placeholder{opacity:1;color:var(--muted)}
.ruch-art{user-select:none;pointer-events:none}
.opening-course-card .ruch-art,.endgame-course-card img{transition:transform var(--motion-settle) ease}
.opening-course-card:focus-visible,.endgame-course-card:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(hover:hover) and (pointer:fine){
 .opening-course-card:hover .ruch-art,.endgame-course-card:hover .endgame-card-art img{transform:translateY(-3px) rotate(-1deg)}
 .nav-button:hover .nav-art{transform:translateX(2px)}
}
.nav-art{transition:transform var(--motion-quick) ease}
.mainline-square.last-move img{animation:ruch-piece-settle var(--motion-settle) ease-out both}
.mainline-rank,.mainline-file{color:var(--board-light-ink)}
.mainline-square.dark :is(.mainline-rank,.mainline-file){color:var(--board-dark-ink)}
.mainline-plan strong{color:var(--ink)}
.mainline-score{border-top-color:var(--line)}
.mainline-counter{min-width:52px;text-align:right}
.mainline-speech{background:var(--surface-raised);color:var(--ink);border-color:var(--line)}
.opening-course-preview .ruch-art,.endgame-card-art img{filter:none}
.game-review-chart [data-analysis-ply]:focus-visible{outline-offset:1px}
.review-key-moments{border-color:var(--line);background:color-mix(in srgb,var(--green) 4%,var(--paper))}
.review-moment{color:var(--ink);background:var(--surface-raised)}
.review-moment.current{border-color:var(--green);background:var(--green-soft)}
.game-review-move.current{scroll-margin-block:90px}
.import-player-chip{color:var(--ink);border-color:var(--line);background:var(--surface-raised)}
.import-player-chip:hover,.import-player-chip.favorite{border-color:var(--green);color:var(--ink)}
.import-player-card{background:var(--surface-raised);border-color:var(--line)}
.import-player-title{color:#fff;background:#755377}
.import-player-favorite.active{color:var(--green)}
.import-game-result.win{color:var(--green);background:var(--green-soft)}
[data-appearance="light"] .import-game-result.loss{color:#a73e37;background:#fbe9e5}
[data-appearance="light"] .import-game-result.draw{color:#596571;background:#edf0f3}
/* The light page keeps the dark navigation, with its own readable palette. */
[data-appearance="light"] .sidebar{color:#e7edf1;background:#1d252d;border-color:#35404b}
[data-appearance="light"] .sidebar .nav-button{color:#b9c4cf}
[data-appearance="light"] .sidebar .nav-button:hover{color:#f5f8f9;background:#2a3540}
[data-appearance="light"] .sidebar .nav-button.active{color:#f5f9f7;background:#29463f}
[data-appearance="light"] .sidebar .nav-button .icon{color:inherit}
[data-appearance="light"] .sidebar-challenge{background:#29353e;border-color:#42515c}
[data-appearance="light"] .sidebar-challenge>strong{color:#edf2f4}
[data-appearance="light"] .sidebar-challenge>span:last-of-type{color:#b9c4cf}
[data-appearance="light"] .sidebar-challenge .progress-track{background:#42515c}
@keyframes ruch-piece-settle{from{opacity:.7;transform:translateY(-3px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:620px){
 .mainline-speech{font-size:14px;line-height:1.6}
 .mainline-plan{font-size:13px}
 .import-player-chip{min-height:34px}
 .button,.pill{touch-action:manipulation}
}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{scroll-behavior:auto!important}
 .mainline-square.last-move img{animation:none}
 .button,.icon-button,.nav-button,.pill,.appearance-option,.piece-theme-option,.color-theme-option,.nav-art,.opening-course-card .ruch-art,.endgame-course-card img{transition:none}
 .opening-course-card:hover .ruch-art,.endgame-course-card:hover .endgame-card-art img,.nav-button:hover .nav-art,.button:not(:disabled):active,.icon-button:not(:disabled):active{transform:none}
}
[data-reduced-motion="true"] .mainline-square.last-move img{animation:none!important}
[data-reduced-motion="true"] :is(.button,.icon-button,.nav-button,.pill,.appearance-option,.piece-theme-option,.color-theme-option,.nav-art,.opening-course-card .ruch-art,.endgame-course-card img){transition:none!important}
[data-reduced-motion="true"] .opening-course-card:hover .ruch-art,[data-reduced-motion="true"] .endgame-course-card:hover .endgame-card-art img,[data-reduced-motion="true"] .nav-button:hover .nav-art,[data-reduced-motion="true"] .button:not(:disabled):active,[data-reduced-motion="true"] .icon-button:not(:disabled):active{transform:none!important}
