.cat-touch-scene { position:absolute; top:0; right:0; bottom:0; left:0; z-index:4; pointer-events:none; }
.cat-touch-wrap { position:relative; display:block; text-align:center; transform-origin:50% 80%; }
.cat-touch-target { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; touch-action:pan-y; }
.cat-touch-target.can-touch-cat { pointer-events:auto; cursor:pointer; }
.cat-touch-target:focus { outline:2px dashed #b98355; outline-offset:3px; }
.is-cat-touched { animation:cat-touch-squish .22s ease-in-out; }
@keyframes cat-touch-squish { 0%,100% { transform:scale(1); } 42% { transform:scale(.985,.97); } }
.cat-touch-hint { color:#896e59; font-size:12px; line-height:1.5; text-align:center; margin:7px 0; }
.cat-purr-once { display:block; margin:8px auto; }
.takehome-entry { min-height:44px; padding:9px 12px; color:#765237; border:1px solid #d7b58c; border-radius:13px; background:#fff7e9; font:inherit; cursor:pointer; }
.takehome-entry:disabled { opacity:.5; cursor:default; }
.takehome-entry:focus { outline:3px solid #dec498; }
.result-actions { flex-wrap:wrap; }
.home-detail-cat { display:block; width:100%; max-width:300px; height:auto; margin:0 auto; }
.dialog-actions { flex-wrap:wrap; }
.dialog-actions > .takehome-entry { margin:5px; }
@media (prefers-reduced-motion:reduce) { .is-cat-touched { animation:none; } }
/* Keep keyboard orientation visible without native blue/black focus rings. */
.cat-touch-target,button,.cat-card,[role="tab"]{-webkit-tap-highlight-color:transparent;}
.cat-touch-target:focus,button:focus,.cat-card:focus,[role="tab"]:focus{outline:2px solid #d8b88e;outline-offset:3px;}
.cat-touch-target:focus{outline:0;filter:drop-shadow(0 0 4px #d8b88e);}
@supports selector(:focus-visible){button:focus:not(:focus-visible),.cat-card:focus:not(:focus-visible),[role="tab"]:focus:not(:focus-visible){outline:0;}.cat-touch-target:focus:not(:focus-visible){filter:none;}}
