/* CATNARA NYANG SVG V1.0 - self-contained CSS character.
   No imported sprites, font dependency, network fetches or database changes. */
.nyang-avatar-slot,.nyang-lobby-avatar,.nyang-alert-avatar{display:flex;align-items:center;justify-content:center;min-width:0}
.nyang-avatar{width:min(100%,310px);aspect-ratio:260/250;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;pointer-events:none;user-select:none;-webkit-user-select:none}
.nyang-avatar-svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 9px 9px rgba(58,41,34,.10))}
.nyang-avatar--stage{width:min(76vw,295px);max-height:300px}
.nyang-avatar--preview{width:min(66vw,240px)}
.nyang-avatar--lobby{width:100%;max-width:74px;min-width:44px;aspect-ratio:260/250}
.nyang-avatar--alert{width:min(45vw,170px);margin:auto}
.nyang-stage .nyang-avatar-slot{width:100%;min-height:214px;padding:6px 0 0}
.nyang-stage .nyang-avatar{animation:na-float 3.2s ease-in-out infinite}
.nyang-avatar .na-tail{transform-box:fill-box;transform-origin:20% 80%;animation:na-tail 2.4s ease-in-out infinite alternate}
.nyang-avatar .na-head{transform-box:fill-box;transform-origin:50% 80%;animation:na-head 3.6s ease-in-out infinite}
.nyang-avatar .na-eyes{transform-box:fill-box;transform-origin:center;animation:na-blink 5.4s ease-in-out infinite}
.nyang-avatar .na-torso{transform-box:fill-box;transform-origin:center;animation:na-breathe 3.4s ease-in-out infinite}
.nyang-avatar .na-prop{transform-box:fill-box;transform-origin:center;animation:na-prop 1.5s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="play"],.nyang-avatar[data-nyang-pose="toy"],.nyang-avatar[data-nyang-pose="zoomies"]{animation:na-bounce .64s ease-in-out infinite alternate!important}
.nyang-avatar[data-nyang-pose="zoomies"]{animation-duration:.32s!important}
.nyang-avatar[data-nyang-pose="feed"] .na-head,.nyang-avatar[data-nyang-pose="water"] .na-head,.nyang-avatar[data-nyang-pose="snack"] .na-head{animation:na-eat .85s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="pet"] .na-head,.nyang-avatar[data-nyang-pose="knead"] .na-head{animation:na-nuzzle 1.6s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="sleep"],.nyang-avatar[data-nyang-pose="rest"],.nyang-avatar[data-nyang-pose="loaf"]{animation:na-rest 4s ease-in-out infinite!important}
.nyang-avatar[data-nyang-pose="sleep"] .na-eyes,.nyang-avatar[data-nyang-pose="rest"] .na-eyes,.nyang-avatar[data-nyang-pose="loaf"] .na-eyes{animation:none}
.nyang-avatar[data-nyang-pose="tailup"] .na-tail{transform:rotate(-18deg);animation:na-tail-high 1.6s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="stretch"] .na-body{transform-box:fill-box;transform-origin:center bottom;animation:na-stretch 2.1s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="patrol"],.nyang-avatar[data-nyang-pose="walk"]{animation:na-walk 2.4s ease-in-out infinite alternate!important}
.nyang-avatar[data-nyang-pose="groom"] .na-head,.nyang-avatar[data-nyang-pose="selfgroom"] .na-head{animation:na-groom 1.3s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="hide"]{animation:na-hide 2.6s ease-in-out infinite!important}
.nyang-avatar[data-nyang-pose="clinic"],.nyang-avatar[data-nyang-pose="sick"]{animation:na-sick 2.6s ease-in-out infinite!important}
.nyang-lobby-world .nyang-lobby-avatar{margin:0 auto;max-width:74px}
.nyang-lobby-world .nyang-avatar{width:min(15vw,64px);max-width:70px}
.nyang-lobby-cat .nyang-avatar-svg{filter:drop-shadow(0 3px 3px rgba(45,30,20,.17))}
.nyang-lobby-preview-cats .nyang-avatar{width:min(23vw,125px);max-width:125px}
.nyang-alert-avatar{margin:10px auto}
.nyang-intro-card .nyang-avatar-slot{margin:12px auto 18px;width:100%}
.nyang-avatar-toggle{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin:7px 0 0;padding:6px 10px;border:1px solid var(--nyang-line,#e8ddd7);border-radius:999px;background:var(--catapp-native-surface,#fff);color:var(--nyang-ink,#493a34);font:700 11px/1.3 system-ui,sans-serif;cursor:pointer}
.nyang-avatar-toggle:focus-visible{outline:2px solid var(--catapp-native-primary,#946f63);outline-offset:2px}
.nyang-stage .nyang-ascii{animation:nyangIdle 2.4s ease-in-out infinite}
@keyframes na-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes na-tail{from{transform:rotate(-9deg)}to{transform:rotate(13deg)}}
@keyframes na-tail-high{from{transform:rotate(-24deg)}to{transform:rotate(-6deg)}}
@keyframes na-head{0%,100%{transform:rotate(-1deg)}55%{transform:rotate(2deg)}}
@keyframes na-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.09)}}
@keyframes na-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
@keyframes na-prop{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes na-bounce{from{transform:translateY(1px) rotate(-2deg)}to{transform:translateY(-13px) rotate(3deg)}}
@keyframes na-eat{from{transform:translateY(3px) rotate(1deg)}to{transform:translateY(15px) rotate(-3deg)}}
@keyframes na-nuzzle{from{transform:rotate(-7deg)}to{transform:rotate(8deg)}}
@keyframes na-rest{0%,100%{transform:translateY(6px) scale(1,.95)}50%{transform:translateY(8px) scale(1.01,.94)}}
@keyframes na-stretch{from{transform:scaleX(1) scaleY(.98)}to{transform:scaleX(1.12) scaleY(.94)}}
@keyframes na-walk{from{transform:translateX(-11px) rotate(-1deg)}to{transform:translateX(11px) rotate(1deg)}}
@keyframes na-groom{from{transform:rotate(-7deg) translateY(3px)}to{transform:rotate(8deg) translateY(9px)}}
@keyframes na-hide{0%,100%{opacity:.55;transform:translateY(12px)}50%{opacity:1;transform:translateY(4px)}}
@keyframes na-sick{0%,100%{transform:translateY(7px) rotate(-2deg)}50%{transform:translateY(6px) rotate(2deg)}}
@media(max-width:540px){.nyang-stage .nyang-avatar-slot{min-height:178px}.nyang-avatar--stage{width:min(78vw,240px)}.nyang-lobby-world .nyang-avatar{width:52px}}

/* V94: game dialog drives distinct poses, props and moving joints.
   Transform SVG groups rather than uploading separate breed/action sprites. */
.nyang-avatar[data-nyang-pose="feed"] .na-torso,
.nyang-avatar[data-nyang-pose="snack"] .na-torso{animation:na-crouch .9s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="water"] .na-head{animation:na-drink .86s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="water"] .na-tongue{transform-box:fill-box;transform-origin:50% 10%;animation:na-lick .48s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="scratch"] .na-paw{transform-box:fill-box;transform-origin:center bottom;animation:na-scratch 0.5s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="scratch"] .na-head{animation:na-head 1.2s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="groom"] .na-paw,
.nyang-avatar[data-nyang-pose="selfgroom"] .na-paw{transform-box:fill-box;transform-origin:center bottom;animation:na-groom-paw 1s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="sniff"] .na-head,
.nyang-avatar[data-nyang-pose="hungry"] .na-head,
.nyang-avatar[data-nyang-pose="thirsty"] .na-head{animation:na-sniff-head 1.3s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="sniff"] .na-sniff,
.nyang-avatar[data-nyang-pose="thirsty"] .na-sniff,
.nyang-avatar[data-nyang-pose="hungry"] .na-sniff{animation:na-scent 1.5s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="watch"] .na-head,
.nyang-avatar[data-nyang-pose="window"] .na-head{animation:na-watch-head 2.8s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="watch"] .na-eyes,
.nyang-avatar[data-nyang-pose="window"] .na-eyes{animation:na-blink 4.4s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="patrol"] .na-body{transform-box:fill-box;transform-origin:center bottom;animation:na-patrol 1s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="walk"] .na-feet{transform-box:fill-box;transform-origin:center;animation:na-feet-step .42s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="knead"] .na-feet{transform-box:fill-box;transform-origin:center;animation:na-feet-step .48s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="pet"] .na-head{animation:na-nuzzle 1.3s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="loaf"] .na-body{transform-box:fill-box;transform-origin:50% 90%;animation:na-loaf 3.5s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="sleep"] .na-body{transform-box:fill-box;transform-origin:50% 90%;animation:na-sleep-curled 4s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="rest"] .na-body{transform-box:fill-box;transform-origin:50% 90%;animation:na-loaf 3.8s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="hide"] .na-head{transform-box:fill-box;transform-origin:center bottom;animation:na-peek 2.7s ease-in-out infinite}
.nyang-avatar[data-nyang-pose="hide"] .na-box{filter:drop-shadow(0 5px 3px rgba(75,50,30,.14))}
.nyang-avatar[data-nyang-pose="stretch"] .na-head{animation:na-stretch-head 2.1s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="zoomies"] .na-tail{animation:na-tail .3s ease-in-out infinite alternate}
.nyang-avatar[data-nyang-pose="play"] .na-prop,.nyang-avatar[data-nyang-pose="toy"] .na-prop{animation:na-ball 1.2s ease-in-out infinite alternate}
@keyframes na-drink{from{transform:translateY(4px) rotate(0)}to{transform:translateY(21px) rotate(6deg)}}
@keyframes na-crouch{from{transform:scaleY(1)}to{transform:scaleY(.91)}}
@keyframes na-lick{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1.18)}}
@keyframes na-scratch{from{transform:translateY(14px) rotate(-18deg)}to{transform:translateY(-16px) rotate(14deg)}}
@keyframes na-groom-paw{0%,100%{transform:rotate(15deg) translateY(4px)}45%{transform:rotate(-16deg) translateY(-18px)}}
@keyframes na-sniff-head{from{transform:translateX(-2px) translateY(0) rotate(-3deg)}to{transform:translateX(10px) translateY(9px) rotate(8deg)}}
@keyframes na-scent{0%,100%{opacity:.15;transform:translateX(-3px)}50%{opacity:.75;transform:translateX(8px)}}
@keyframes na-watch-head{from{transform:rotate(-14deg) translateX(-5px)}to{transform:rotate(14deg) translateX(7px)}}
@keyframes na-patrol{from{transform:translateX(-9px) rotate(-4deg)}to{transform:translateX(9px) rotate(4deg)}}
@keyframes na-feet-step{from{transform:translateX(-4px) rotate(-5deg)}to{transform:translateX(4px) rotate(5deg)}}
@keyframes na-loaf{0%,100%{transform:scaleY(.77) translateY(18px)}50%{transform:scaleY(.8) translateY(15px)}}
@keyframes na-sleep-curled{0%,100%{transform:rotate(-8deg) scale(.85,.76) translateY(18px)}50%{transform:rotate(-6deg) scale(.86,.78) translateY(16px)}}
@keyframes na-peek{0%,100%{transform:translateY(27px)}45%{transform:translateY(-13px)}70%{transform:translateY(10px)}}
@keyframes na-stretch-head{from{transform:rotate(-12deg) translateY(5px)}to{transform:rotate(13deg) translateY(-10px)}}
@keyframes na-ball{from{transform:translate(-12px,0) rotate(-24deg)}to{transform:translate(7px,-12px) rotate(24deg)}}

/* Responsive customization editor; native select elements remain accessible. */
.nyang-appearance-editor{margin:14px 0;border:1px solid var(--catapp-native-line,#e6d9d1);border-radius:17px;background:var(--catapp-native-surface,#fff);color:var(--catapp-native-text,#3d3433);overflow:visible}
.nyang-appearance-editor summary{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;cursor:pointer;padding:13px 15px;font-size:15px;font-weight:800;min-height:46px;list-style-position:inside}
.nyang-appearance-editor summary small{font-size:11px;font-weight:500;color:var(--catapp-native-muted,#796f6b)}
.nyang-appearance-editor[open] summary{border-bottom:1px solid var(--catapp-native-line,#e6d9d1)}
.nyang-appearance-editor form{padding:14px}
.nyang-appearance-note{margin:0 0 12px!important;font-size:12px;line-height:1.65;color:var(--catapp-native-muted,#796f6b)}
.nyang-appearance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nyang-appearance-field{display:grid;gap:5px;min-width:0;font-size:12px;font-weight:700}
.nyang-appearance-field select{width:100%;min-height:44px;box-sizing:border-box;padding:8px 10px;border:1px solid var(--catapp-native-line,#e6d9d1);border-radius:11px;background:var(--catapp-native-surface,#fff);color:var(--catapp-native-text,#3d3433);font-size:13px}
.nyang-appearance-field select:focus-visible{outline:2px solid var(--catapp-native-primary,#9b7c70);outline-offset:1px}
.nyang-appearance-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.nyang-appearance-buttons button{flex:1 1 125px;min-height:44px}
.nyang-appearance-result{display:block;margin-top:8px;font-size:12px;color:var(--catapp-native-muted,#796f6b)}
@media(max-width:375px){.nyang-appearance-grid{grid-template-columns:minmax(0,1fr)}}

@media(prefers-reduced-motion:reduce){.nyang-avatar,.nyang-avatar *{animation:none!important;transition:none!important}}

/* V96 separate daily water-bowl washing pose. */
.nyang-avatar[data-nyang-pose="water_bowl_clean"] .na-head{
  animation:na-drink 1.2s ease-in-out infinite alternate
}
.nyang-avatar[data-nyang-pose="water_bowl_clean"] .na-water-wash{
  transform-box:fill-box;transform-origin:center;
  animation:na-water-scrub 1.25s ease-in-out infinite alternate
}
@keyframes na-water-scrub{from{transform:translateX(-5px) rotate(-3deg)}to{transform:translateX(5px) rotate(3deg)}}

/* CATNARA NYANG SVG V3.0 - anatomically layered 2.5D surfaces.
   All motion is decorative: never changes game time, points or care state. */
.nyang-avatar .na-v3-ear{transform-box:fill-box;transform-origin:50% 85%}
.nyang-avatar[data-nyang-expression="guarded"] .na-v3-ear-left{transform:rotate(-12deg)}
.nyang-avatar[data-nyang-expression="guarded"] .na-v3-ear-right{transform:rotate(12deg)}
.nyang-avatar[data-nyang-expression="content"] .na-v3-ear-left{animation:na-v3-ear-flick 11s ease-in-out infinite}
.nyang-avatar[data-nyang-expression="curious"] .na-v3-ear-right{animation:na-v3-ear-flick 8s ease-in-out infinite}
.nyang-avatar[data-nyang-expression="sleepy"] .na-v3-ear{opacity:.94}
.nyang-avatar--stage .na-v3-ambient,.nyang-avatar--preview .na-v3-ambient{
  transform-box:fill-box;transform-origin:center;
  animation:na-v3-soft-light 6s ease-in-out infinite
}
.nyang-avatar[data-nyang-expression="guarded"] .na-tail{animation-duration:4.8s}
.nyang-avatar[data-nyang-expression="content"] .na-tail{animation-duration:2.9s}
.nyang-avatar[data-nyang-detail="compact"] .na-v3-fur-tufts,
.nyang-avatar[data-nyang-detail="compact"] .na-v3-ambient,
.nyang-avatar[data-nyang-detail="compact"] .na-v3-toes{display:none}
@keyframes na-v3-ear-flick{0%,93%,100%{transform:rotate(0)}95%{transform:rotate(-8deg)}97%{transform:rotate(3deg)}}
@keyframes na-v3-soft-light{0%,100%{opacity:.75}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .nyang-avatar .na-v3-ear,.nyang-avatar .na-v3-ambient{animation:none!important}
}

/* CATNARA NYANG SVG V3.1 — more distinct anatomical paths and actual sleep silhouette.
   No external assets, no gameplay writes; mobile PWA safe. */
.nyang-avatar .na-v31-body,.nyang-avatar .na-v31-headshape{
  stroke-linejoin:round;stroke-linecap:round
}
.nyang-avatar .na-v31-headshape{filter:drop-shadow(0 2px 1px rgba(76,56,44,.09))}
.nyang-avatar .na-v31-bib,.nyang-avatar .na-v31-backlight{pointer-events:none}
.nyang-avatar .na-v31-curled{transform-box:fill-box;transform-origin:50% 80%}
.nyang-avatar[data-nyang-pose="sleep"] .na-body.na-v31-curled{
  animation:na-v31-curl-breathe 4.9s ease-in-out infinite!important
}
.nyang-avatar[data-nyang-pose="sleep"] .na-v31-sleep-head{
  transform-box:fill-box;transform-origin:70% 80%;
  animation:na-v31-sleep-nuzzle 6.2s ease-in-out infinite
}
.nyang-avatar[data-nyang-pose="sleep"] .na-v31-sleep-tail{
  transform-box:fill-box;transform-origin:25% 75%
}
.nyang-avatar[data-nyang-detail="compact"] .na-v31-backlight{display:none}
@keyframes na-v31-curl-breathe{
  0%,100%{transform:translateY(3px) scale(1)}
  50%{transform:translateY(2px) scale(1.012,.984)}
}
@keyframes na-v31-sleep-nuzzle{
  0%,85%,100%{transform:rotate(0)}
  92%{transform:rotate(-2.5deg)}
}
@media(prefers-reduced-motion:reduce){
 .nyang-avatar[data-nyang-pose="sleep"] .na-body.na-v31-curled,
 .nyang-avatar[data-nyang-pose="sleep"] .na-v31-sleep-head{animation:none!important}
}
