/* XXTF 桌宠样式（2026-11-08）：全部站内变量，直角线稿，错位实心阴影。keyframes 统一 pt- 前缀。 */

/* 猫本身：在 site.css 的 .pet 基础上 */
.pet[data-cat]{cursor:pointer}
.pet.pet-shy{opacity:.28;pointer-events:none;transition:opacity .25s}
.pet.petting{cursor:grab;touch-action:none}
.pet.pet-in-sheet{position:fixed;width:70px;height:70px;z-index:74}
.pet-in-sheet img{width:100%;height:100%}

/* 把手 */
.pet-tab{position:fixed;right:0;bottom:calc(96px + env(safe-area-inset-bottom));width:40px;height:52px;z-index:70;background:var(--card);border:1.5px solid var(--ink);border-right:0;box-shadow:-3px 3px 0 var(--paper-2);overflow:hidden;cursor:pointer;padding:0;transition:transform .25s var(--ease)}
.pet-tab img{width:46px;position:absolute;left:4px;top:4px;pointer-events:none}
.pet-tab:hover{transform:translateX(-4px)}
.pet-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* 菜单（桌面） */
.pet-menu{position:fixed;z-index:73;width:300px;max-width:calc(100vw - 24px);background:var(--card);border:1.5px solid var(--ink);box-shadow:5px 5px 0 var(--paper-2);padding:14px 14px 10px;animation:pt-pop .26s var(--ease) both;font-size:13px;color:var(--ink)}
.pet-menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pet-menu-top b{font:700 15px var(--sans)}
.pet-x{border:0;background:none;font-size:20px;line-height:1;color:var(--mute);cursor:pointer;padding:2px 6px}
.pet-menu-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font:11px var(--mono);color:var(--mute)}

/* 猫窝（紧凑） */
.pet-scrim{position:fixed;inset:0;z-index:72;background:rgba(20,18,16,.25)}
.pet-sheet{position:fixed;left:0;right:0;bottom:0;z-index:73;background:var(--paper);border-top:1.5px solid var(--ink);padding:10px 14px calc(14px + env(safe-area-inset-bottom));max-height:72vh;overflow:auto;animation:dock-up .35s var(--ease) both;color:var(--ink)}
.pet-stage{position:relative;height:104px;border-bottom:1px dashed var(--rule-2);margin-bottom:10px}
.pet-seg{margin-bottom:10px}

/* 通用面板内容（菜单与猫窝共用） */
.pet-say{font-size:13px;color:var(--ink-2);min-height:20px;margin:4px 0 8px}
.pet-mood{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);margin-bottom:10px}
.pet-dots{display:inline-flex;gap:5px}
.pet-dots i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--rule-2)}
.pet-dots i.on{background:var(--accent);border-color:var(--accent)}
.pet-bond{margin-left:auto;font-size:12px;color:var(--ink-2)}
.pet-feed-btn{width:100%;justify-content:space-between;min-height:46px;margin-bottom:8px}
.pet-feed-st{font-size:12px;opacity:.85}
.pet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pet-act-btn{position:relative;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);font:600 13px var(--sans);cursor:pointer;padding:4px 2px;transition:background .2s,color .2s,opacity .2s}
.pet-act-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pet-act-btn:hover{background:var(--ink);color:var(--on-ink)}
.pet-act-btn.cooling{opacity:.45}
.pet-cd{position:absolute;top:2px;right:4px;font:10px var(--mono);font-style:normal}
.pet-sheet .pet-act-btn{min-height:52px}
.pet-close{width:100%;margin-top:12px}

/* 特效 */
.pet-coin{position:fixed;z-index:71;width:22px;height:22px;border-radius:50%;background:var(--accent);border:1.5px solid var(--ink);color:#fff;font:700 10px var(--mono);display:grid;place-items:center;pointer-events:none}
.pet-coin-s{width:24px;height:24px}
.pet-bowl{position:fixed;z-index:71;pointer-events:none;line-height:0}
.pet-bowl svg{display:block}
.pet-bubble-o{position:fixed;z-index:71;pointer-events:none;border-radius:50%;border:1.5px solid var(--ink);background:color-mix(in srgb,#fff 70%,transparent);box-shadow:inset 2px 2px 0 #fff;animation:pt-bub 2s ease-out forwards}
@keyframes pt-bub{0%{transform:translateY(0) translateX(0) scale(1);opacity:1}50%{transform:translateY(-60px) translateX(-8px) scale(1)}85%{transform:translateY(-110px) translateX(8px) scale(1);opacity:.9}100%{transform:translateY(-120px) scale(1.4);opacity:0}}
.pet-drop{position:fixed;z-index:71;width:6px;height:9px;pointer-events:none;border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;background:#8db7c9;border:1px solid var(--ink)}
.pet-blush{position:fixed;z-index:71;width:10px;height:6px;border-radius:50%;background:var(--accent);opacity:.45;pointer-events:none;animation:pt-blush 1.6s ease-in-out forwards}
@keyframes pt-blush{0%{opacity:0}25%,70%{opacity:.45}100%{opacity:0}}
.pet-z{position:fixed;z-index:71;font:700 13px var(--mono);color:var(--ink-2);pointer-events:none;animation:pt-z 1.8s ease-out forwards}
.pet-z0{font-size:11px}.pet-z1{font-size:15px}.pet-z2{font-size:19px}
@keyframes pt-z{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(14px,-40px)}}
.pet-moon{position:fixed;z-index:71;pointer-events:none;animation:pt-moon 3s ease-in-out infinite}
@keyframes pt-moon{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.pet-cloud{position:fixed;z-index:71;pointer-events:none;animation:pt-cloud .4s var(--ease) both}
@keyframes pt-cloud{from{opacity:0;transform:translateY(-8px)}}
.pet-hand{position:fixed;z-index:72;pointer-events:none;transition:left .2s ease-in-out,top .2s;filter:none}
.pet-fluff{position:fixed;z-index:71;width:8px;height:1.5px;background:var(--ink-2);pointer-events:none}
.pet-tub{position:fixed;z-index:71;pointer-events:none;line-height:0;animation:pt-tub .3s var(--ease) both}
.pet-stage .pet-tub.in-stage{position:absolute;bottom:4px;top:auto;z-index:1}
@keyframes pt-tub{from{opacity:0;transform:translateY(16px)}}
.pet-shuttle{position:fixed;z-index:71;pointer-events:none}
.pet-word{position:fixed;z-index:71;font:12px var(--mono);color:var(--ink-2);pointer-events:none;animation:pt-word 1s ease-out forwards}
@keyframes pt-word{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-24px)}}
.pet-bigheart{font-size:24px;color:var(--accent);animation:pt-big 1.4s var(--ease) both}
@keyframes pt-big{0%{transform:scale(.8);opacity:0}30%{transform:scale(1.3);opacity:1}60%{transform:scale(1)}100%{opacity:0;transform:translateY(-14px)}}
.pet-ring{position:fixed;z-index:70;pointer-events:none}
.pet-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.pet-ring circle{fill:none;stroke:var(--accent);stroke-width:4;stroke-dasharray:0 100;transition:stroke-dasharray .15s linear}
.pet-confetti{position:fixed;z-index:71;width:6px;height:10px;pointer-events:none}

/* 气泡复用 site.css 的 .pet-bubble；这里只补按钮行 */
.pet-bubble .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pet-bubble a{color:var(--accent)}

/* 投喂确认弹窗里的按钮行 */
.pet-feed-acts{display:flex;gap:10px;margin-top:14px}
.pet-feed-acts .btn{flex:1}

/* 投喂结果卡 */
.pet-result{position:fixed;z-index:73;width:300px;max-width:calc(100vw - 24px);background:var(--card);border:1.5px solid var(--ink);box-shadow:5px 5px 0 var(--paper-2);padding:14px 16px;animation:pt-pop .3s var(--ease) both;color:var(--ink)}
.pet-result-t{font:700 18px var(--sans);color:var(--accent)}
.pet-result-t.lose-t{color:var(--ink)}
.pet-result-m{margin-top:6px;font-size:13px;color:var(--ink-2)}
.pet-result-s{margin-top:6px;font-size:12.5px;color:var(--mute)}
.pet-result-b{margin:10px 0;font-size:13px;color:var(--ink-2)}
.pet-result-b .pet-bal{color:var(--ink);font-weight:700}
.pet-result .btn{width:100%}

/* 故事卡 */
.pet-story.in-sheet{position:relative;z-index:1;width:auto;max-width:none;box-sizing:border-box;margin:0 0 8px;font-size:12.5px;padding:9px 12px;box-shadow:3px 3px 0 var(--paper-2);animation:none}
.pet-story.in-sheet .pet-story-t{min-height:0}
.pet-story{position:fixed;z-index:72;width:min(340px,calc(100vw - 24px));max-width:340px;background:var(--card);border:1.5px solid var(--ink);box-shadow:5px 5px 0 var(--paper-2);padding:13px 15px;font-size:13.5px;line-height:1.7;color:var(--ink);animation:pt-pop .3s var(--ease) both;cursor:pointer}
.pet-story-top{font:600 11px var(--mono);letter-spacing:.14em;color:var(--accent)}
.pet-story h3{margin:6px 0 4px;font:700 15px var(--sans)}
.pet-story-t{margin:0;min-height:3.4em;color:var(--ink-2)}
.pet-story-end{display:flex;gap:8px;margin-top:10px}
.pet-story-end[hidden]{display:none}
.pet-story-end .btn{flex:1}

/* 羽毛球弹窗（小游戏结构，由 pets-badminton.js 生成其内部；这里补站内容器样式） */
.pet-game{width:min(640px,100%);padding:16px}
.pet-court{position:relative;width:100%;height:260px;background:var(--paper);border:1.5px solid var(--ink);overflow:hidden;touch-action:manipulation;user-select:none}
.pet-ring-hit{position:absolute;border:2px dashed var(--accent);border-radius:50%;pointer-events:none}

/* 深色模式：纸色线稿的白色物件与金币文字 */
[data-theme=dark] .pet-bubble-o{background:color-mix(in srgb,var(--card) 70%,transparent)}
[data-theme=dark] .pet-coin{color:#fff}

/* 动效减弱 */
@media (prefers-reduced-motion: reduce){
  .pet-blush,.pet-z,.pet-bubble-o,.pet-word,.pet-bigheart,.pet-tub,.pet-cloud{animation-duration:.5s}
  .pet-confetti{display:none}
  .pet-moon{animation:none}
  .pet-tab:hover{transform:none}
}

@keyframes pt-pop{from{opacity:0;transform:translateY(10px) scale(.98)}}

/* 调试截图：?petfreeze=1 时不自动收起结果卡（pets.js 的 FREEZE） */
.pet-freeze .pet-result{animation:none}

/* 紧凑布局猫窝打开时：猫（76）在面板（73）之上；盆、碗在猫下（75），其余特效在猫上（77） */
.pet-sheet-on .pet-tub,.pet-sheet-on .pet-bowl{z-index:75}
.pet-sheet-on .pet-z,.pet-sheet-on .pet-moon,.pet-sheet-on .pet-word,.pet-sheet-on .pet-bubble-o,.pet-sheet-on .pet-drop,
.pet-sheet-on .pet-blush,.pet-sheet-on .pet-fluff,.pet-sheet-on .pet-hand,.pet-sheet-on .pet-ring,.pet-sheet-on .pet-coin,
.pet-sheet-on .pet-cloud,.pet-sheet-on .pet-confetti,.pet-sheet-on .pet-spark,.pet-sheet-on .pet-paw,.pet-sheet-on .pet-bigheart{z-index:77}
.pet-sheet-on .pet-bubble,.pet-sheet-on .pet-result{z-index:78}
.pet-stage .pet-bowl.in-stage{position:absolute;bottom:4px;top:auto;z-index:1}
/* 猫窝里泡泡升得低一点，别飘出面板 */
.pet-sheet-on .pet-bubble-o{animation-name:pt-bub-s}
@keyframes pt-bub-s{0%{transform:translateY(0) scale(1);opacity:1}60%{transform:translateY(-34px) translateX(-6px);opacity:.9}100%{transform:translateY(-48px) translateX(6px) scale(1.3);opacity:0}}

/* 小猫送礼物（PET-GIFT-20261108）：礼盒落下、盖子弹开、金币飞出 */
.pet-gift{position:fixed;z-index:77;pointer-events:none;line-height:0}
.pet-gift svg{display:block;overflow:visible}
.pet-gift .lid{transform-box:fill-box;transform-origin:0 100%;transition:transform .35s var(--ease)}
.pet-gift.open .lid{transform:translate(-4px,-10px) rotate(-28deg)}
.pet-gift-card{z-index:78}
.pet-stage .pet-gift.in-stage{position:absolute;bottom:4px;top:auto;z-index:2}
