/* Studio interaction layer: paint/translate only; never change board geometry. */
:root{--studio-feedback-time:160ms;--studio-feedback-ease:cubic-bezier(.2,.7,.2,1);--studio-feedback-wash:#e5ecff;--studio-feedback-shadow:0 4px 0 #14213d24}
:where(a,button,input){-webkit-tap-highlight-color:#2856db24}
:is(.studio-cta,.studio-surprise,.studio-filters button,.studio-favorite,.studio-empty button,.settings-trigger,.classic-controls button,.classic-confirm button,.mine-toolbar button,.sudoku-keypad button,.studio-settings button,nav[data-variants] a,[data-command=recover]){
 transition:background-color var(--studio-feedback-time),color var(--studio-feedback-time),border-color var(--studio-feedback-time),box-shadow var(--studio-feedback-time),translate var(--studio-feedback-time) var(--studio-feedback-ease);
}
:is(.studio-game,.studio-feature,.studio-search){transition:box-shadow var(--studio-feedback-time),border-color var(--studio-feedback-time)}
:is(.studio-header nav a,.studio-trust a,.studio-related a,.studio-brand){text-underline-offset:5px;transition:color var(--studio-feedback-time),text-decoration-color var(--studio-feedback-time)}
.studio-cta>span[aria-hidden]{transition:translate var(--studio-feedback-time) var(--studio-feedback-ease)}
.studio-search:focus-within{outline:3px solid var(--studio-blue);outline-offset:3px}
:is(a,button,input):focus-visible{outline:3px solid var(--studio-blue);outline-offset:3px}
:is(.playing-card,.mahjong-tile,.sudoku-cell,.mine-cell):focus-visible{outline-offset:-3px}
:is(.studio-game,.studio-feature):focus-within{box-shadow:inset 0 0 0 2px var(--studio-blue)}
@media(hover:hover) and (pointer:fine){
 :is(.studio-cta,.studio-surprise,.studio-empty button):hover{background:var(--studio-blue);box-shadow:var(--studio-feedback-shadow);translate:0 -2px}
 .studio-surprise:hover{background:var(--studio-ink)}
 .studio-cta:hover>span[aria-hidden]{translate:3px 0}
 :is(.studio-filters button,.settings-trigger,.classic-controls button,.classic-confirm button,.mine-toolbar button,.sudoku-keypad button,nav[data-variants] a,[data-command=recover]):not(:disabled):not([aria-disabled=true]):hover{background:var(--studio-feedback-wash);color:var(--studio-ink);border-color:var(--studio-blue);box-shadow:0 2px 0 #14213d18;translate:0 -1px}
 :is(.studio-filters button[aria-pressed=true],nav[data-variants] a[aria-current=page],.classic-controls button:first-child,.mine-toolbar button:first-child):not(:disabled):hover{background:var(--studio-ink);color:var(--studio-paper)}
 .studio-favorite:hover{background:var(--studio-feedback-wash);box-shadow:inset 0 0 0 1px var(--studio-blue);translate:0 -1px}
 .studio-settings button:not(:disabled):hover{background:var(--studio-blue);box-shadow:var(--studio-feedback-shadow)}
 .studio-settings [data-clear]:hover{background:#fce8ec;color:#92202e}
 :is(.studio-header nav a,.studio-trust a,.studio-related a):hover{color:var(--studio-blue);text-decoration:underline;text-decoration-thickness:2px}
 .studio-brand:hover{color:var(--studio-blue);text-decoration:none}
 .studio-search:hover{border-color:var(--studio-blue)}
 /* A shelf card only reacts when its actual action is hovered, not empty space. */
 :is(.studio-game,.studio-feature):has(.studio-cta:hover){box-shadow:inset 0 0 0 2px var(--studio-blue)}
 button.playing-card:not(:disabled):hover{box-shadow:inset 0 0 0 3px #2856db,0 2px 3px #102f2540}
 .sudoku-cell:not(.selected):hover{background:var(--studio-feedback-wash)}
 .mahjong-tile.free:not(.selected):not(.hinted):hover{outline:2px solid #2856db;outline-offset:-3px}
 .mine-cell:not(:disabled):hover{box-shadow:inset 0 0 0 2px var(--studio-blue)}
}
:is(.studio-cta,.studio-surprise,.studio-filters button,.studio-favorite,.studio-empty button,.settings-trigger,.classic-controls button,.classic-confirm button,.mine-toolbar button,.sudoku-keypad button,.studio-settings button,nav[data-variants] a):not(:disabled):not([aria-disabled=true]):active{translate:0 1px;box-shadow:none}
button:disabled,[aria-disabled=true]{cursor:default}
body :is(button,a)[data-touch-pressed]:not(:disabled):not([aria-disabled=true]){background-color:#c5d7ff;color:var(--studio-ink);box-shadow:inset 0 0 0 3px var(--studio-blue);translate:none;transition:none}
body button.mahjong-tile[data-touch-pressed]{box-shadow:inset 0 0 0 3px var(--studio-blue),3px 5px 0 #abc1a8}
body .studio-settings [data-clear][data-touch-pressed]{color:#92202e;background-color:#fce8ec}
/* Touch feedback is immediate and lasts only while pressed: no sticky hover,
   animation, geometry changes or delay before the normal click action. */
@media(hover:none), (pointer:coarse){
 :is(button,a.studio-cta,a.studio-surprise,nav[data-variants] a):not(:disabled):not([aria-disabled=true]):active{
  translate:none;transition:none;
 }
 :is(.studio-trust a,.studio-related a):active{text-decoration:underline;text-decoration-thickness:2px}
 .studio-brand:active{color:var(--studio-blue);text-decoration:none}
}
.studio-reduce-motion :is(a,button,input,.studio-game,.studio-feature,.studio-search),.studio-reduce-motion .studio-cta>span[aria-hidden]{transition:none!important;translate:none!important}
@media(prefers-reduced-motion:reduce){
 :is(a,button,input,.studio-game,.studio-feature,.studio-search),.studio-cta>span[aria-hidden]{transition:none!important;translate:none!important}
}
