/* MINI ARCADE • shared interaction and visual finishing layer
   Intentionally leaves each game's palette and board geometry untouched. */
:root{
  --ui-focus:var(--mint, #cbd5ff);
  --ui-hairline:rgba(228,237,255,.12);
}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:22px;
}
body{
  font-synthesis:none;
  text-rendering:optimizeLegibility;
}
button,a,[role="button"]{
  -webkit-tap-highlight-color:transparent;
}
button,[role="button"]{
  touch-action:manipulation;
}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible{
  outline:3px solid var(--ui-focus)!important;
  outline-offset:3px;
  box-shadow:0 0 0 5px rgba(7,17,29,.5);
}
button:disabled{
  cursor:not-allowed;
}
:where(.shell,.hero,.hero-copy,.game-layout,.play-layout,.game-card-info,
 .play-panel,.game-panel,.game-aside,.info-card,.mode-copy,.game-header,.play-heading)>*{
  min-width:0;
}
:where(.scorebar,.game-stats,.summary,.result-substats) strong{
  font-variant-numeric:tabular-nums;
}
:where(.play-panel,.game-panel,.info-card,.side-card,.modal-card){
  background-clip:padding-box;
}
:where(.modal-layer){
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
:where(.modal-card,.result-card){
  box-shadow:0 25px 65px rgba(0,0,0,.36);
}
:where(.mode-card,.level-card,.game-card,.primary-button,.secondary-button,
 .play-link,.control-button,.subtle-button,.fold-action,.orbit-control-row button){
  transition-property:transform,background-color,border-color,box-shadow,filter;
  transition-duration:160ms;
  transition-timing-function:ease-out;
}
:where(.game-card[hidden]){
  display:none!important;
}
:where(.game-card,.mode-card,.play-panel,.game-panel,.info-card){
  border-color:var(--ui-hairline);
}
:where(.footer a,.back-link,.arcade-link,.text-link){
  text-underline-offset:3px;
}
:where(.live-dot,.eyebrow-dot){
  flex:none;
}
:where(#status,.greater-status,.orbit-status,.fold-status,.feedback-row){
  overflow-wrap:break-word;
}
:where(.game-controls,.controls,.game-buttons,.result-buttons){
  flex-wrap:wrap;
}
:where(.help-button,.back-button){
  min-width:42px;
  min-height:42px;
  flex-shrink:0;
}
.skip-link{
  position:fixed;
  z-index:1000;
  left:16px;
  top:12px;
  padding:11px 15px;
  transform:translateY(-150%);
  border-radius:10px;
  color:#162a32;
  background:#e1fff2;
  font-weight:850;
  font-size:13px;
  box-shadow:0 12px 32px rgba(0,0,0,.3);
}
.skip-link:focus,.skip-link:focus-visible{
  transform:translateY(0);
}
@media(hover:none){
  .game-card:hover,.mode-card:hover{
    transform:none!important;
  }
}
@media(min-width:1050px){
  :where(.play-layout,.game-layout)>.game-aside{
    position:sticky;
    top:18px;
    align-self:start;
  }
}
@media(max-width:680px){
  .shell{
    padding-bottom:max(12px,env(safe-area-inset-bottom));
  }
  .footer{
    line-height:1.65;
  }
  :where(.mode-card,.primary-button,.secondary-button,.play-link){
    min-height:44px;
  }
  :where(.game-stats,.scorebar,.summary)>div{
    min-width:0;
  }
  :where(.game-stats,.scorebar) strong{
    letter-spacing:-.02em;
  }
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
