.cat-prank-portrait { width:170px; max-width:100%; fill:none; stroke:var(--ink); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cat-prank-fur { fill:#f6efe2; }
.cat-prank-paw { fill:#f6efe2; }
.postcat-panel { margin:22px auto 0; max-width:380px; padding:13px 22px 24px; border-top:1px solid var(--line); animation:arrive .4s ease both; }
.postcat-panel .cat-prank-portrait { width:118px; height:92px; margin-bottom:-10px; }
.postcat-question { font-size:18px; line-height:1.6; margin:8px 0 18px; }
.postcat-delivered .cat-prank-paw { transform:translate(12px,-9px); transition:transform .25s; }
.snake-quiz-picture { display:block; width:155px; height:126px; margin:18px auto; fill:none; stroke:var(--ink); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.snake-quiz-body { stroke:#8d886b; stroke-width:17; }
.snake-quiz-head { fill:#b6b394; }
.snake-quiz-options { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:20px auto 0; }
.snake-quiz-options button { min-width:135px; }
.snake-quiz-options button[aria-pressed='true'] { border-color:var(--red); color:var(--red); background:#faf4e957; }
.snake-quiz-result { margin:20px auto; max-width:420px; }
.snake-quiz-result .micro-copy { margin:0; min-height:42px; }
.snake-quiz-stamp { color:var(--red); border:2px solid currentColor; border-radius:50%; display:grid; place-items:center; width:155px; height:77px; font-size:13px; line-height:1.5; margin:16px auto 8px; transform:rotate(-7deg); animation:snake-stamp-arrive .3s ease both; }
.gift-thief-track { position:relative; width:360px; max-width:100%; height:212px; overflow:hidden; margin:26px auto 0; }
.gift-thief-stolen { position:absolute; width:max-content; max-width:100%; left:50%; top:138px; transform:translateX(-50%); }
.gift-thief-cat { position:absolute; left:50%; top:8px; width:172px; margin-left:5px; padding:0; border:0; background:transparent; transition:transform .65s; }
.gift-thief-cat .cat-prank-portrait { display:block; }
.gift-thief-cat span { display:inline-block; font-size:12px; font-style:italic; border-bottom:1px dotted var(--muted); }
.gift-thief-cat:hover:not(:disabled) .cat-prank-paw { transform:translate(-6px,6px); }
.gift-thief-cat:focus-visible { outline-offset:-2px; }
.gift-thief-rescued .gift-thief-stolen { animation:gift-thief-return .65s ease both; }
.gift-thief-rescued .gift-thief-cat { transform:translate(-92px,-12px); }
.gift-thief-rescued .gift-thief-cat span { visibility:hidden; }
.gift-thief-rescued .cat-prank-paw { transform:translate(15px,-9px); transition:transform .4s; }
.gift-thief-response { min-height:44px; max-width:420px; margin:16px auto 0; }
@keyframes gift-thief-return { from { transform:translateX(22%); opacity:0; } to { transform:translateX(-50%); opacity:1; } }
@keyframes snake-stamp-arrive { from { opacity:0; transform:rotate(-7deg) scale(1.15); } to { opacity:1; transform:rotate(-7deg) scale(1); } }
@media(max-width:600px) {
 .postcat-panel { padding-inline:14px; }
 .postcat-question { font-size:16px; }
 .snake-quiz-options { gap:10px; }
 .snake-quiz-options button { min-width:calc(50% - 5px); padding-inline:12px; }
 .snake-quiz-options button { flex:1 1 calc(50% - 5px); max-width:280px; }
 .gift-thief-cat { width:145px; margin-left:-3px; }
 .gift-thief-track { height:195px; }
 .gift-thief-stolen { top:126px; }
 .gift-thief-rescued .gift-thief-cat { transform:translate(-71px,-7px); }
}
@media(prefers-reduced-motion:reduce) {
 .postcat-panel,.snake-quiz-stamp,.gift-thief-rescued .gift-thief-stolen { animation:none; }
 .postcat-delivered .cat-prank-paw,.gift-thief-stolen,.gift-thief-cat,.gift-thief-rescued .cat-prank-paw { transition:none; }
}

.pet-cat { max-width:340px; margin:22px auto 12px; text-align:center; }
.pet-cat .pet-cat-instruction { color:var(--ink); margin:0 0 8px; font-size:18px; }
.pet-cat-button { position:relative; display:block; width:220px; max-width:100%; margin:auto; padding:0; border:0; background:transparent; touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.pet-cat-picture { width:100%; display:block; fill:none; stroke:var(--ink); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pet-cat-fur { fill:#f4edde; }
.pet-cat-ear { stroke:#c8a79a; stroke-width:4; }
.pet-cat-cheek { fill:#d5aba0; stroke:none; opacity:0; }
.pet-cat-closed-eyes { display:none; }
.pet-cat-loved .pet-cat-open-eyes { display:none; }
.pet-cat-loved .pet-cat-closed-eyes { display:initial; }
.pet-cat-loved .pet-cat-cheek { opacity:.7; }
.pet-cat-head-area { fill:transparent; stroke:none; pointer-events:all; }
.pet-cat-hearts { position:absolute; inset:0; pointer-events:none; color:var(--red); font-size:23px; }
.pet-cat-hearts span { position:absolute; opacity:0; }
.pet-cat-hearts span:nth-child(1) { top:45px; left:13px; --pet-drift:-10px; }
.pet-cat-hearts span:nth-child(2) { top:17px; left:105px; --pet-drift:2px; }
.pet-cat-hearts span:nth-child(3) { top:40px; right:5px; --pet-drift:10px; }
.pet-cat-purring .pet-cat-hearts span { animation:pet-cat-heart 1.2s ease-out both; }
.pet-cat-purring .pet-cat-hearts span:nth-child(2) { animation-delay:.08s; }
.pet-cat-purring .pet-cat-hearts span:nth-child(3) { animation-delay:.15s; }
.pet-cat .pet-cat-hint { margin:4px 0 15px; font-size:12px; }
.pet-cat .pet-cat-status { font-size:14px; color:var(--ink); margin:0; min-height:70px; line-height:1.7; }
.pet-cat-count { display:block; font-size:11px; font-style:italic; color:var(--muted); margin-top:7px; }
.sleepy-note { margin-top:24px; padding-top:22px; border-top:1px solid var(--line); text-align:left; }
.sleepy-note .sleepy-note-caption { margin:0 0 12px; color:var(--muted); font-size:12px; font-style:italic; }
.sleepy-note blockquote { margin:0 0 16px; padding-left:16px; border-left:2px solid var(--red); font-size:16px; line-height:1.8; }
.sleepy-note summary { min-height:44px; font-size:13px; }
.sleepy-note details p { margin:0 0 16px; font-size:14px; line-height:1.9; }
@keyframes pet-cat-heart { 0% { opacity:0; transform:translate(0,4px) scale(.7); } 20% { opacity:1; } 100% { opacity:0; transform:translate(var(--pet-drift),-28px) scale(1.05); } }
@media(prefers-reduced-motion:reduce) {
 .pet-cat-purring .pet-cat-hearts span { animation:none; opacity:1; }
}
