/* Shared color feedback remains available for keyboard and touch input. */
.arrow{flex-shrink:0;border-radius:50%;aspect-ratio:1;vertical-align:middle;box-sizing:border-box}
.arrow svg{display:block;width:22px;height:22px;pointer-events:none}
.inline-arrow{width:28px;height:28px;display:inline-grid;margin-inline:5px;background:var(--soft);color:var(--ink)}
.inline-arrow svg{width:16px;height:16px}
.arrow-back svg{rotate:-135deg}.arrow-forward svg{rotate:45deg}
.text-link{display:inline-flex;align-items:center;gap:4px}
button:focus-visible,a:focus-visible{outline:3px solid var(--amber);outline-offset:5px}
button:not(:disabled):active,.btn:active{filter:brightness(.94)}
.cursor-halo{position:fixed;top:0;left:0;width:0;height:0;pointer-events:none!important;z-index:9999;opacity:0;transition:opacity .2s;will-change:transform}
.cursor-halo:before{content:'';position:absolute;left:-56px;top:-56px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle,rgba(243,165,43,.16),rgba(243,165,43,.035) 55%,transparent 72%)}
.cursor-halo>span{position:absolute;left:-15px;top:-15px;width:30px;height:30px;border:1.5px solid rgba(23,58,99,.5);border-radius:50%;transition:width .2s,height .2s,left .2s,top .2s,border-color .2s,background .2s}
.dark .cursor-halo>span{border-color:rgba(243,165,43,.7)}
.cursor-halo.visible{opacity:1}
.cursor-halo.over-control>span{width:48px;height:48px;left:-24px;top:-24px;border-color:var(--amber);background:rgba(243,165,43,.06)}
@media(hover:hover) and (pointer:fine){
  button:not(:disabled),.btn,.arrow,.text-link,.card-bottom{transition:background-color .22s,color .22s,border-color .22s,box-shadow .22s}
  .btn:hover,.btn:focus-visible{background:var(--amber);color:#102b4e;box-shadow:0 8px 22px rgba(16,43,78,.16)}
  .btn.amber:hover,.btn.amber:focus-visible{background:#173a63;color:#fff}
  .btn:hover .arrow{background:#173a63;color:#fff}
  .btn.amber:hover .arrow{background:#f3a52b;color:#102b4e}
  .icon:hover,.filter button:hover,.admin-tabs button:hover,.choice:not(:disabled):hover{background:var(--amber);color:#102b4e;border-color:var(--amber)}
  .choice:not(:disabled):hover small{color:#243a51}
  .text:hover,.text-link:hover,.card-bottom:hover{color:var(--ink)}
  a:hover>.arrow,button:not(:disabled):hover>.arrow,.card-bottom:hover .arrow{background:var(--amber);color:#102b4e}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  button:not(:disabled),.btn,.arrow,.text-link,.card-bottom{transition:transform .22s,background-color .22s,color .22s,border-color .22s,box-shadow .22s}
  .btn:hover{transform:translateY(-2px) scale(1.045)}
  button:not(.btn):not(:disabled):hover{transform:scale(1.04)}
  a:hover>.arrow,button:not(:disabled):hover>.arrow,.card-bottom:hover .arrow{transform:scale(1.13) rotate(7deg)}
  .text-link:hover,.card-bottom:hover{transform:translateX(3px)}
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-halo{display:none!important}}
@media(prefers-reduced-motion:reduce){.btn:hover,button:hover,.arrow,main{transform:none!important;animation:none!important;transition:none!important}}
@media(hover:hover) and (pointer:fine){button.text:not(:disabled):hover{background:var(--soft);color:var(--ink);border-radius:8px}}
