:root{--paper:#fbf6ee;--ink:#4f453e;--muted:#8f8073;--green:#548d77;--pink:#c46f6b;--line:#e8ddd0;--gold:#c99c5c;font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;color:var(--ink);background:#eee8df;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid var(--green);outline-offset:3px}button:disabled{opacity:.3;cursor:default}.phone{max-width:460px;min-height:100svh;margin:auto;background:var(--paper);padding:24px 24px max(16px,env(safe-area-inset-bottom));box-shadow:0 0 70px #66513d10}header{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{display:flex;gap:10px;align-items:center;font-weight:800;font-size:16px;letter-spacing:.03em}.brand small{display:block;font-size:10px;font-weight:500;color:var(--muted);margin-top:5px}.brand-paw{font-size:33px;color:var(--gold)}.icon-button{border:1px solid var(--line);border-radius:50%;height:44px;min-width:44px;background:transparent;font-size:10px;font-weight:700}.scoreboard{display:flex;align-items:center;gap:14px;margin:25px 0 18px}.scoreboard>div:first-child{flex:1}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--muted)}#score{display:block;font-family:Georgia,serif;font-weight:400;font-size:49px;line-height:1.1;font-variant-numeric:tabular-nums}#score.negative{color:var(--pink)}.timer{position:relative;width:59px;height:59px}.timer svg{width:100%;height:100%;transform:rotate(-90deg)}.timer circle{fill:none;stroke:#e8dfd3;stroke-width:2.4}.timer #clock{stroke:var(--green);stroke-dasharray:125.664;stroke-linecap:round}.timer>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:24px}.timer small{font-family:sans-serif;font-size:9px;margin:7px 0 0 2px}.meters{display:flex;gap:18px;margin-bottom:17px}.meters>div{flex:1}.meters span{display:block;font-size:10px;margin-bottom:6px}.track{height:5px;background:#e8e3d8;border-radius:5px;overflow:hidden}.track i{height:100%;width:0;display:block;background:var(--green);transition:width .18s}.wild i{background:var(--pink)}.playfield{position:relative;background:#f3ede3;border-radius:110px 110px 22px 22px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;border:1px solid #e9e0d2}.scene-top{position:absolute;left:18px;right:18px;top:18px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted);z-index:1}.edition{letter-spacing:.06em}.notice{position:absolute;top:47px;left:0;right:0;text-align:center;font-size:13px;font-weight:700;z-index:1}.notice.warning{color:#ad6943;animation:nudge .5s ease-in-out infinite alternate}#cat{display:block;width:100%;height:auto;margin-top:17px;margin-bottom:16px;overflow:visible;touch-action:none}#cat-body{transform-origin:200px 320px;animation:breathe 3s ease-in-out infinite}.field-bottom{position:absolute;bottom:14px;left:0;right:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:#8b7562}#grace-badge{background:#e2ecdf;padding:3px 10px;border-radius:20px;color:#527549;font-size:10px}.parts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px}.part{border:1px solid var(--line);border-radius:13px;text-align:center;padding:8px 2px;font-size:11px;background:#fffaf3}.part small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.part.good{border-color:#a5c4ad;background:#e8f0e5}.part.good small{color:#477a60}.part.bad{border-color:#e2b7ae;background:#fae9e2}.part.bad small{color:#aa5750}.mode-strip{text-align:center;font-size:10px;min-height:38px;display:flex;align-items:center;justify-content:center;line-height:1.5;padding:6px 0;color:var(--muted)}.primary{display:block;width:100%;border:0;background:var(--green);color:#fffdf5;border-radius:16px;padding:16px;font-size:14px;font-weight:700;box-shadow:0 4px 0 #3e705b;min-height:48px}.primary span{float:right}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #3e705b}.intro p{font-size:10px;line-height:1.8;text-align:center;color:var(--muted);margin:13px 0 18px}footer{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid var(--line);padding-top:12px;font-size:9px;color:var(--muted)}footer b{font-family:Georgia,serif;font-size:14px;color:var(--ink)}.text-button{border:0;background:none;font-size:10px;min-height:44px;text-decoration:underline;text-underline-offset:3px}dialog{border:1px solid var(--line);border-radius:26px;padding:26px;max-width:360px;width:calc(100% - 36px);text-align:center;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #47392c25}dialog::backdrop{background:#51463855;backdrop-filter:blur(5px)}dialog h1,dialog h2{font-size:20px;line-height:1.6}dialog p{font-size:12px;line-height:1.9}#help-dialog{text-align:left;max-height:85svh;overflow:auto}#help-dialog h2{font-size:16px}#help-dialog b{font-weight:700}.result-flower{font-size:44px;color:var(--gold)}#result-score{font-family:Georgia,serif;font-size:64px}#result-score.negative{color:var(--pink)}.result-detail{color:var(--muted)}#record-message{font-size:11px;color:var(--green);margin:16px 0}body[data-mode=purr] .playfield{background:#edf1dd;border-color:#b6c99b}body[data-mode=chomp] .playfield{background:#f8e7df;border-color:#e4a99b}body[data-mode=purr] .notice{color:#648337}body[data-mode=chomp] .notice{color:#b26055}body[data-mode=chomp] #cat-body{animation:wiggle .25s ease-in-out infinite alternate}.hit-region{fill:transparent;stroke:none}.region-mark{font-family:sans-serif;font-size:15px;font-weight:bold;text-anchor:middle;pointer-events:none}.float-score{font-family:Georgia,serif;font-size:24px;font-weight:bold;text-anchor:middle;paint-order:stroke;stroke:#fbf6ee;stroke-width:4px}.blush{fill:#df9e89;opacity:.55}.fur{fill:#edcba0;stroke:#826b54;stroke-width:3.2;stroke-linejoin:round}.cream{fill:#fff0d5}.line{fill:none;stroke:#826b54;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.eye{fill:none;stroke:#5e5041;stroke-width:4;stroke-linecap:round}.tail{transform-box:fill-box;transform-origin:80% 80%;animation:tail 3s ease-in-out infinite}body[data-warning=true] .tail{animation:tail .25s ease-in-out infinite}#hand{transition:opacity .15s}.biting-mouth{display:none}body[data-biting=true] .normal-mouth{display:none}body[data-biting=true] .biting-mouth{display:block}body[data-biting=true] #hand>g{animation:handshake .14s ease-in-out infinite alternate}body[data-paused=true] #cat-body{animation-play-state:paused}[hidden]{display:none!important}@keyframes breathe{50%{transform:translateY(-3px) scaleY(1.012)}}@keyframes tail{50%{transform:rotate(8deg)}}@keyframes wiggle{to{transform:rotate(1.8deg)}}@keyframes nudge{to{transform:translateY(-2px)}}@keyframes handshake{to{transform:translate(-12px,-6px) rotate(-16deg)}}@media(min-width:600px){body{padding:24px 0}.phone{min-height:0;border-radius:32px;padding-bottom:20px;box-shadow:0 15px 80px #6d56451c}}@media(max-width:370px){.phone{padding:16px}.brand{font-size:14px}.scoreboard{margin:16px 0 12px}.meters{margin-bottom:12px}}@media(max-height:760px) and (max-width:599px){.phone{padding-top:14px}.scoreboard{margin:14px 0 12px}#score{font-size:40px}.meters{margin-bottom:10px}.intro p{margin:9px 0}.parts{margin-top:10px}#cat{margin-top:8px;margin-bottom:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.scene-top{left:54px;right:54px;top:22px}
@media(max-height:700px) and (max-width:599px){.phone{padding:12px}.brand small{display:none}.brand{font-size:13px}.brand-paw{font-size:27px}.scoreboard{margin:8px 0}.timer{width:44px;height:44px}#score{font-size:32px}.meters{margin-bottom:8px}.playfield{border-radius:75px 75px 20px 20px}#cat{width:min(100%,calc(100svh - 320px));margin:8px auto 14px}.scene-top{top:15px;left:44px;right:44px}.notice{top:35px;font-size:11px}.parts{margin-top:8px}.part{padding:5px 2px}.mode-strip{min-height:28px;font-size:9px}footer{padding-top:4px}.field-bottom{bottom:8px;font-size:9px}}

/* Cat appearance and reactions are visual only; scoring stays in rules.js. */
:is(#cat,.album-cat) .fur{fill:var(--fur,#edcba0);stroke:#80715f;stroke-width:3.2}
:is(#cat,.album-cat) .cream{fill:var(--belly-fur,#fff0d5)}
:is(#cat,.album-cat) .tail{fill:var(--tail-fur,#edcba0)}
.outline{fill:none;stroke:#80715f;stroke-width:3.2;stroke-linejoin:round}
.tabby-mark{fill:none;stroke:#b48e62;stroke-width:5;stroke-linecap:round}
.whiskers{fill:none;stroke:#a49785;stroke-width:2;stroke-linecap:round}
#cat-body{animation:none!important}
#cat-rig{transform-origin:200px 320px;animation:breathe 3s ease-in-out infinite}
.face-tilt{transform-origin:0 20px;transition:transform .25s ease-out}
.blink-eyes{transform-box:fill-box;transform-origin:center;animation:slow-blink 6s infinite}
.content-eyes,.joyful-eye,.playful-brows,.happy-cheek-lines{display:none}
.cheek-warmth{opacity:.32;transition:opacity .3s}
body[data-expression=content] .open-eyes,body[data-expression=bliss] .open-eyes{display:none}
body[data-expression=content] .content-eyes,body[data-expression=bliss] .content-eyes{display:block}
body[data-expression=bliss] .soft-eye{display:none}
body[data-expression=bliss] .joyful-eye,body[data-expression=bliss] .happy-cheek-lines{display:block}
body[data-expression=content] .face-tilt{transform:translateY(-3px) rotate(-5deg)}
body[data-expression=bliss] .face-tilt{transform:translateY(-3px) rotate(-7deg)}
body[data-expression=content] .cheek-warmth,body[data-expression=bliss] .cheek-warmth{opacity:1}
body[data-expression=bliss] #cat-rig{animation:content-sway 2s ease-in-out infinite}
body[data-expression=playful] .playful-brows,body[data-expression=bite] .playful-brows{display:block}
body[data-expression=bite] .blink-eyes{animation:none}
#hugging{display:none}
body[data-biting=true] #hugging{display:block}
body[data-biting=true] .resting-front-paws{visibility:hidden}
body[data-biting=true] #hand{opacity:0!important}
body[data-biting=true] .part-marker{opacity:.2}
body[data-biting=true] #cat-rig{animation:nibble-bob .28s ease-in-out infinite}
.hug-squeeze{transform-origin:0 58px;animation:cuddle-squeeze .28s ease-in-out infinite}
.hug-paw{transform-origin:0 60px;animation:paw-snug .28s ease-in-out infinite}
.nibble-teeth{transform-origin:0 32px;animation:nibble .28s ease-in-out infinite}
.affection-heart{fill:#cb8e86;font:24px Georgia,serif;text-anchor:middle;paint-order:stroke;stroke:#fff6e6;stroke-width:2px;pointer-events:none}
.coat-picker{border:0;padding:0;margin:0 0 14px;display:flex;gap:7px}
.coat-picker legend{font-size:11px;color:var(--muted);text-align:center;padding:0 0 9px;width:100%}
.coat-picker button{flex:1;display:flex;gap:6px;align-items:center;justify-content:center;border:1px solid var(--line);background:#fffaf3;border-radius:12px;padding:9px 3px;min-height:44px;font-size:11px}
.coat-picker button[aria-pressed=true]{background:#e8f0e5;border-color:var(--green);box-shadow:0 0 0 1px var(--green);color:#3e705b;font-weight:700}
.coat-dot{display:inline-block;width:21px;height:21px;border-radius:50%;border:1px solid #80715f55;flex-shrink:0}
.calico-dot{background:conic-gradient(#373738 0 30%,#c58e52 30% 48%,#fff6e6 48% 78%,#373738 78%)}
.tuxedo-dot{background:conic-gradient(#34383b 0 37%,#fff7e9 37% 72%,#34383b 72%)}
.cream-dot{background:#edcba0}
body[data-paused=true] #cat-rig,body[data-paused=true] #cat-rig *{animation-play-state:paused}
@keyframes slow-blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.08)}}
@keyframes content-sway{0%,100%{transform:translateY(-1px) rotate(-.7deg)}50%{transform:translateY(-3px) rotate(.7deg)}}
@keyframes nibble-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes cuddle-squeeze{0%,100%{transform:scale(1)}50%{transform:scale(.98,1.02)}}
@keyframes paw-snug{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.94)}}
@keyframes nibble{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.82)}}
@media(max-height:700px) and (max-width:599px){.timer>span{font-size:20px}.coat-picker{margin-bottom:10px}.coat-picker legend{padding-bottom:6px}.coat-picker button{font-size:10px}}
@media(prefers-reduced-motion:reduce){.face-tilt{transform:none!important}}
/* v03: keep attention on the cat, with quieter legends and a corner countdown. */
.parts{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;margin-top:9px}
.part{padding:4px 1px;border-radius:8px;font-size:8px}
.part small{font-size:7px;margin-top:3px;white-space:nowrap}
.region-mark{font-size:21px}
.notice{font-size:12px;left:20px;right:20px;top:44px;border-radius:20px;background:#fbf6eecf;padding:5px 2px}
.field-bottom{bottom:12px;color:#586747;font-weight:600}
.scene-top{z-index:2}
.count-in{position:absolute;z-index:4;left:50%;top:44%;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:110px;height:110px;border-radius:60px;background:#fff9ebed;color:#4e7c62;font:bold 52px Georgia,serif;box-shadow:0 5px 30px #66513d15;pointer-events:none;white-space:nowrap;padding:12px}
#count-in:not([hidden])~#cat{opacity:.75}
#end-count{position:absolute;left:50%;transform:translateX(-50%);bottom:-19px;white-space:nowrap;font-size:10px;color:#aa5c4d;font-weight:700}
body[data-urgent=true] .timer #clock{stroke:#c47562}
body[data-urgent=true] .timer>span{color:#b26055}
.result-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.result-detail>div{padding:10px 3px;background:#f0eade;border-radius:12px}
.result-detail b{display:block;font:24px Georgia,serif;color:var(--ink)}
.result-detail span{font-size:9px}
body[data-mode=chomp] #cat-rig{animation:playful-bounce .65s ease-in-out infinite}
body[data-biting=true] #cat-rig{animation:nibble-bob .28s ease-in-out infinite}
body[data-mode=chomp] #cat-rig[data-pose="2"]{animation:belly-wiggle .6s ease-in-out infinite}
body[data-mode=chomp] .raised-tail{animation:tail .35s ease-in-out infinite}
@keyframes playful-bounce{50%{transform:translateY(-3px) rotate(1deg)}}
@keyframes belly-wiggle{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
@media(max-width:599px){body[data-playing=false] #cat{width:clamp(190px,calc(100svh - 550px),100%);margin-left:auto;margin-right:auto}}
@media(max-height:700px) and (max-width:599px){.part{padding:3px 1px;font-size:7px}.part small{font-size:6px}.notice{top:32px;left:10px;right:10px;font-size:10px}.count-in{min-width:90px;height:90px;font-size:38px}.field-bottom{font-size:8px}.scene-top{font-size:8px}.timer{margin-bottom:9px}}
body[data-biting=true] #hand{visibility:hidden}
/* Petting feedback uses small rig deformations; hit regions remain stationary. */
body[data-petted=true][data-mode=normal] #cat-rig{animation:pet-stretch .7s ease-in-out infinite}
body[data-expression=content] .resting-front-paws ellipse:first-of-type,body[data-expression=bliss] .resting-front-paws ellipse:first-of-type{transform-box:fill-box;transform-origin:50% 100%;animation:paw-knead .7s ease-in-out infinite}
body[data-expression=content] .resting-front-paws ellipse:nth-of-type(2),body[data-expression=bliss] .resting-front-paws ellipse:nth-of-type(2){transform-box:fill-box;transform-origin:50% 100%;animation:paw-knead .7s .35s ease-in-out infinite}
body[data-expression=content] .tail{animation:tail 1s ease-in-out infinite}
@keyframes pet-stretch{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-2px) scale(1.015,.985)}75%{transform:translateY(-1px) scale(.995,1.01)}}
@keyframes paw-knead{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-3px) scaleY(.92)}}

/* B-inspired warm ink, broad cheeks and quiet fur accents. */
:is(#cat,.album-cat) .fur,.outline{stroke:#634c3d;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.fur-detail{stroke:#bb9775;stroke-width:1.8;opacity:.6}.toe-lines{stroke:#b58e6c;stroke-width:2}.parts{grid-template-columns:repeat(5,1fr)}.cheek-warmth{opacity:.35}

/* v05: playing space first, controls in compact rows. */
.phone{padding:12px 12px max(10px,env(safe-area-inset-bottom))}.brand{font-size:13px}.brand small{display:none}.brand-paw{font-size:23px}.icon-button{height:40px;min-width:40px}.scoreboard{margin:8px 0;gap:10px}#score{font-size:34px}.timer{width:44px;height:44px}.meters{gap:12px;margin-bottom:8px}.meters span{font-size:9px;margin-bottom:4px}.playfield{border-radius:28px;overflow:hidden}.scene-top{top:9px;left:12px;right:12px;font-size:8px}.notice{top:27px;font-size:10px;padding:3px;left:8px;right:8px}.field-bottom{bottom:7px;font-size:9px}#cat,body[data-playing=false] #cat{width:100%;height:auto;margin:40px auto 20px}.parts{margin:5px 0;gap:3px}.part{padding:2px;font-size:8px}.part small{font-size:7px;margin-top:1px}.mode-strip{min-height:22px;padding:2px;font-size:9px}footer{padding:0;font-size:8px}footer b{font-size:11px}.items{display:flex;gap:5px;margin-top:6px}.items button{flex:1;min-width:0;min-height:46px;border:1px solid #d1c3a9;border-radius:12px;background:#f8edcf;font-size:11px;padding:4px}.items button small{display:block;font-size:9px;margin-top:3px}.items button:disabled{opacity:.48}.items button:not(:disabled){box-shadow:0 2px 0 #cbb588}#item-status{font-size:9px;text-align:center;min-height:15px;color:#74624f}body[data-playing=false] #item-status{display:none}body[data-playing=true] header{display:none}body[data-playing=true] .parts,body[data-playing=true] footer{display:none}body[data-playing=true] .mode-strip{font-size:9px}body[data-playing=true] .playfield{margin-left:-8px;margin-right:-8px}
body[data-item=toy][data-petted=true] .resting-front-paws{transform-box:fill-box;transform-origin:center;animation:paw-knead .35s infinite}body[data-item=brush][data-petted=true] #cat-rig{animation:content-sway 1s infinite}body[data-item=snack] .normal-mouth{stroke:#d1887e;stroke-width:4}
body[data-suckle=true] #hugging{display:block;opacity:1}body[data-suckle=true] #hand{visibility:hidden}body[data-suckle=true] .nibble-teeth{display:none}body[data-suckle=true] .hug-squeeze{animation:cuddle-squeeze 1s infinite}body[data-suckle=true] .resting-front-paws{visibility:hidden}
@media(max-height:700px) and (max-width:599px){body[data-playing=true] #cat{width:100%;margin:37px auto 17px}body[data-playing=true] .scoreboard{margin:3px 0}body[data-playing=true] .meters{margin-bottom:4px}.items button{min-height:44px}.phone{padding-top:6px}.intro p{margin:6px 0}}

.suckle-tongue,.held-item{display:none}body[data-suckle=true] .suckle-tongue{display:block;animation:nibble 1s infinite}body[data-item=toy] .toy-icon,body[data-item=snack] .snack-icon,body[data-item=brush] .brush-icon{display:block}

/* v06: a reserved delivery area above the cat, never over the touch targets. */
#items{position:absolute;top:58px;left:12px;right:auto;z-index:3;display:block;width:174px;margin:0}#items[data-side=right]{left:auto;right:12px}#items button{display:grid;grid-template-columns:36px 1fr;align-items:center;width:100%;min-height:64px;padding:7px 9px;background:#fff8df;border:2px solid #b8904d;border-radius:16px;box-shadow:0 4px 0 #d5bd87;font-size:13px;color:#57402c;text-align:left}#items .drop-icon{grid-row:1/3;font-size:26px}#items small{font-size:10px;color:#775127;margin-top:2px}#items button:disabled{opacity:.65}#item-status{position:absolute;top:72px;left:12px;right:12px;line-height:1.7;font-size:12px;font-weight:700;color:#735830}#cat,body[data-playing=false] #cat,body[data-playing=true] #cat{margin-top:126px;margin-bottom:20px}body[data-playing=false] #cat{margin-top:48px}.notice{font-size:11px;font-weight:700}.meters span{font-size:10px;font-weight:700}#mode-banner{position:absolute;z-index:6;top:45%;left:0;width:100%;padding:20px 5px;text-align:center;background:#fcf4d8f2;border-top:3px solid #8cab5b;border-bottom:3px solid #8cab5b;color:#3f6e40;pointer-events:none;box-shadow:0 10px 40px #56432d33}#mode-title{display:block;font-size:clamp(18px,5.6vw,26px)}#mode-caption{display:block;font-size:12px;margin-top:7px}#mode-banner[data-mode=chomp]{color:#9c3b38;background:#ffe6ddf2;border-color:#d57e70}#mode-banner.enter{animation:mode-sweep 1.5s ease-in-out both}body[data-mode=purr] .playfield{box-shadow:inset 0 0 0 4px #a2c066}body[data-mode=chomp] .playfield{box-shadow:inset 0 0 0 4px #d77d6d}@keyframes mode-sweep{0%{transform:translateX(105%);opacity:0}18%,78%{transform:translateX(0);opacity:1}100%{transform:translateX(-105%);opacity:0}}body[data-paused=true] #mode-banner{animation-play-state:paused}@media(prefers-reduced-motion:reduce){#mode-banner.enter{animation:none;transform:none}}

/* Nine coats share one articulated silhouette and equal rules. */
.coat-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.coat-picker legend{float:none}.parts{grid-template-columns:repeat(6,minmax(0,1fr))}
.white-dot{background:#fffdf5}.black-dot{background:#45454f}.gray-dot{background:#a2abb3}.ginger-dot{background:repeating-linear-gradient(45deg,#e6ad70 0 5px,#b57947 5px 8px)}.silver-dot{background:repeating-linear-gradient(45deg,#b9c1c7 0 5px,#737e8a 5px 8px)}.point-dot{background:radial-gradient(#8b756b 40%,#edddc4 45%)}
:is(#cat,.album-cat) .fur,:is(#cat,.album-cat) .outline,:is(#cat,.album-cat) .line,:is(#cat,.album-cat) .eye{stroke:var(--ink,#68594e)}:is(#cat,.album-cat) .whiskers{stroke:var(--ink,#68594e);opacity:.6}:is(#cat,.album-cat) .tabby-mark{stroke:var(--ink,#68594e);opacity:.5}

body[data-playing=true] header{display:flex;justify-content:flex-end;height:28px}body[data-playing=true] header .brand{display:none}body[data-playing=true] #sound{height:28px;min-width:58px;border-radius:14px;font-size:10px}

#debug-banner{background:#fff0d3;color:#785418;border:1px solid #dcb675;border-radius:9px;padding:5px;text-align:center;font-size:11px;font-weight:bold}#debug-settings,#debug-tools{margin:8px 0;border:1px dashed #c4b49c;border-radius:12px;padding:8px;font-size:11px}#debug-settings summary,#debug-tools summary{cursor:pointer;min-height:32px;display:flex;align-items:center}#debug-settings p,#debug-tools p{font-size:10px;line-height:1.7;margin:6px 0}.debug-switch{display:flex;align-items:center;gap:8px;min-height:44px}.debug-switch input{width:20px;height:20px}.debug-actions{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}.debug-actions button{min-height:44px;flex:1;min-width:65px;border:1px solid #c4b49c;border-radius:8px;background:#fff8e9;font-size:10px}#debug-title-list{padding-left:20px;line-height:1.8}

.debug-pose-label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#debug-pose{min-height:44px;max-width:100%;flex:1;padding:6px;border:1px solid #c4b49c;border-radius:8px;background:#fff8e9;color:inherit;font:inherit}

/* Keep pads/toes attached to animated paws, and freeze the entire rig on pause. */
#cat .paw-tip ellipse{animation:none!important}.paw-tip{transform-box:fill-box;transform-origin:50% 100%}body[data-expression=content] .paw-tip,body[data-expression=bliss] .paw-tip{animation:paw-knead .7s ease-in-out infinite}body[data-expression=content] .paw-tip:nth-of-type(2),body[data-expression=bliss] .paw-tip:nth-of-type(2){animation-delay:.35s}body[data-paused=true] #cat *,body[data-paused=true] #cat{animation-play-state:paused!important;transition:none!important}

/* v12: dedicated top lane, larger cat and compact item bubbles. */
body[data-playing=true] .phone{padding-left:4px;padding-right:4px}
body[data-playing=true] .playfield{margin-left:0;margin-right:0}
#cat,body[data-playing=true] #cat{margin-top:100px;margin-bottom:24px}
body[data-playing=false] #cat{margin-top:48px}
#mode-banner{top:23px;padding:8px 4px;border-width:2px;box-shadow:none;min-height:64px}
#mode-title{font-size:clamp(17px,5vw,22px);line-height:1.25}
#mode-caption{font-size:10px;margin-top:4px}
body:not([data-mode=normal]) .notice{visibility:hidden}
#items,#items[data-side=right]{top:43px;width:48px;left:12px;right:auto}
#items[data-side=right]{left:auto;right:12px}
#items button{display:grid;place-items:center;width:48px;height:48px;min-height:48px;border-radius:50%;padding:0;border:2px solid #8b6dc2;background:#efe4ff;box-shadow:0 3px 0 #c8b4e1;text-align:center}
#items .drop-icon{grid-row:auto;font-size:26px;line-height:1}
#item-status{top:68px;left:70px;right:70px;font-size:10px;line-height:1.5}
.meters span{font-size:11px;font-weight:800;letter-spacing:.03em}
.meters>div:first-child span{color:#28724c}.meters>div:last-child span{color:#ad3838}
.region-mark{font-size:24px;font-weight:900}
.item-guide{font-size:11px;margin:8px 0;padding:8px;border:1px solid var(--line);border-radius:12px}
.item-guide summary{cursor:pointer;min-height:32px;display:flex;align-items:center}
.item-guide p{text-align:left;line-height:1.8}
body[data-biting=true] .part-marker{opacity:.85}
/* v13: start in one view, clear result actions, reachable bonus items. */
body:not([data-playing=true]) .scoreboard,body:not([data-playing=true]) .meters,body:not([data-playing=true]) .parts,body:not([data-playing=true]) .mode-strip,body:not([data-playing=true]) .notice,body:not([data-playing=true]) .field-bottom{display:none}
body:not([data-active=true]) .part-marker{display:none}
body:not([data-playing=true]) #cat{height:min(65svh,420px);width:100%;margin:8px 0 0}
body:not([data-playing=true]) .playfield{margin-top:10px}
#start-panel{position:absolute;z-index:5;bottom:18px;left:18px;right:18px;padding:12px;background:#fff9eeed;border:1px solid #e5d8bd;border-radius:18px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}
#start-panel label{font-size:13px;font-weight:700}#start-panel label small{font-size:10px}
#cat-name{width:100%;min-width:0;min-height:44px;border:1px solid #c5b99f;border-radius:10px;background:#fffdf7;padding:8px;font:16px inherit;font-size:16px;color:var(--ink)}
#name-status{grid-column:1/-1;font-size:10px;color:#756958;text-align:center}
#start{grid-column:1/-1;min-height:56px;font-size:18px;padding:12px;line-height:1.5}
#start small{display:block;font-size:11px;font-weight:400}
body[data-playing=true] #start-panel{display:none}
.scene-top{font-size:11px;gap:6px;align-items:center;flex-wrap:wrap}
#cat-name-label{font-size:15px;font-weight:800;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scene-top .edition{display:none}
body[data-playing=true] #cat{margin-top:116px;margin-bottom:44px}
.notice{top:40px;font-size:clamp(12px,3.5vw,15px);line-height:1.5;padding:5px 8px}
.field-bottom{bottom:10px;font-size:clamp(13px,3.7vw,16px);line-height:1.5;left:10px;right:10px;justify-content:center;flex-wrap:wrap;gap:5px;color:#3e614b}
#grace-badge{font-size:10px}
.mode-strip,body[data-playing=true] .mode-strip{font-size:14px;font-weight:700;line-height:1.6;padding:8px 4px;min-height:36px}
#items,#items[data-side=right]{top:99px;left:22px;right:auto;width:64px}
#items[data-side=right]{left:auto;right:22px}
#items button{position:relative;width:64px;height:64px;min-height:64px;border-width:3px;background:#fff1a8;border-color:#c09529;box-shadow:0 3px 0 #c3a451,0 0 12px #f6d66c80}
#items button[data-item=snack]{background:#ffe3d3;border-color:#dc8a60;box-shadow:0 3px 0 #dba27f,0 0 12px #ffd3a6}
#items button[data-item=brush]{background:#ddf4c9;border-color:#6f9f53;box-shadow:0 3px 0 #91b67c,0 0 12px #c6e9a3}
#items .drop-icon{font-size:31px}
#items button::before{content:'ボーナス';position:absolute;top:-10px;left:0;right:0;border-radius:9px;background:#fffdf2;border:1px solid currentColor;color:#72582c;font-size:10px;font-weight:800;line-height:18px}
#items button::after{content:'✦';position:absolute;right:-5px;top:13px;color:#d2a52a;text-shadow:0 0 5px white;font-size:21px;animation:bonus-glint 2s ease-in-out infinite;pointer-events:none}
@keyframes bonus-glint{0%,100%{opacity:.65;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
#item-status{top:84px;font-size:12px}
#result[open]{display:flex;flex-direction:column;max-height:calc(100svh - 24px);padding:18px;overflow:hidden}
.result-content{overflow:auto;min-height:0;overscroll-behavior:contain}
#result .result-flower{font-size:28px}#result h1{font-size:19px;margin:6px 0}#result-score{font-size:48px}
.result-actions{display:grid;gap:14px;padding:16px 0 4px;flex-shrink:0;border-top:1px solid var(--line)}
.result-actions button{width:100%;min-height:56px;font-size:15px;font-weight:700;border-radius:14px;line-height:1.5}
.secondary{border:2px solid #8b9e83;background:#f3f5eb;color:#43644d;padding:12px}
.coat-picker button{font-size:13px;min-height:48px}.coat-picker legend{font-size:13px}
footer{flex-wrap:wrap;font-size:11px}footer .text-button{width:100%;min-height:48px;font-size:14px;background:#f0eadf;border-radius:12px;text-decoration:none}
@media(max-height:650px){body:not([data-playing=true]) #cat{height:350px}#result .result-detail{margin:8px 0}.result-detail>div{padding:6px}.result-content p{margin:6px 0}}
body[data-playing=true] #cat{margin-top:100px;margin-bottom:30px}
body[data-playing=true] .mode-strip{padding:4px;min-height:30px}
@media(max-height:650px){body[data-playing=true] #cat{margin-top:88px;margin-bottom:24px}}
/* Collection menus never cover active play. All purchases are local game points. */
.collection-entry{padding:12px 0;text-align:center}.collection-entry>button{width:100%;min-height:52px;font-size:15px;font-weight:700}.collection-entry #wallet{font-size:14px;font-weight:700;color:#4e765a}
#shop-dialog{width:calc(100% - 24px);max-width:440px;max-height:calc(100svh - 24px);padding:16px;overflow:auto;text-align:left}
.shop-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;position:sticky;top:-16px;z-index:2;background:var(--paper);padding:8px 0}.shop-heading h2{font-size:18px;margin:0}.shop-heading button{min-height:44px;font-size:13px;padding:7px 14px}
#shop-wallet{font-size:14px;font-weight:700;margin:6px 0;color:#426c52}
.shop-preview-wrap{position:relative;background:#eee9db;border-radius:16px;text-align:center;margin-bottom:12px}
#shop-preview{display:block;width:100%;height:155px}#shop-preview-label{display:block;font-size:12px;padding-bottom:8px}
#shop-preview .fur{fill:var(--fur);stroke:var(--ink);stroke-width:2.8}#shop-preview .cream{fill:var(--belly-fur)}#shop-preview .tail{fill:var(--tail-fur);animation:none}#shop-preview .eye,#shop-preview .line,#shop-preview .outline{stroke:var(--ink)}#shop-preview *{animation:none!important;transition:none!important}
#shop-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}#shop-tabs button{min-height:44px;border:1px solid #c8baa5;border-radius:10px;background:#fffaf0;font:inherit;font-size:12px}
#shop-tabs button[aria-pressed=true]{background:#5c8c72;color:white;border-color:#5c8c72}
#shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}
#shop-grid button{min-height:62px;border:1px solid #d6c9b5;border-radius:12px;background:#fffaf0;color:inherit;padding:8px;text-align:left}#shop-grid strong{font-size:13px;display:block}#shop-grid small{font-size:11px;display:block;margin-top:5px}
#shop-grid button[aria-pressed=true]{border:2px solid #668b69;background:#edf3df}
.shop-purchase{border-top:1px solid #d6c9b5;padding-top:12px}.shop-purchase label{font-size:13px;display:flex;align-items:center;gap:10px}.shop-purchase select{min-height:44px;padding:8px;font:inherit;border:1px solid #c8baa5;border-radius:8px;background:white;color:inherit}
#shop-message{font-size:12px;line-height:1.6}#shop-buy{font-size:14px;min-height:52px}#shop-buy:disabled{opacity:.5;box-shadow:none}.shop-purchase>p:last-child{font-size:11px;line-height:1.6}
#reward-message{font-size:12px;font-weight:700;color:#557448}
#shop-tabs{position:sticky;top:44px;z-index:2;background:var(--paper);padding:6px 0}
#shop-dialog{scroll-padding-top:106px}#shop-grid button{scroll-margin-top:106px}
#shop-preview #preview-hugging,#shop-preview .content-eyes,#shop-preview .playful-brows,#shop-preview .happy-cheek-lines,#shop-preview .biting-mouth,#shop-preview .suckle-tongue{display:none!important}
#shop-preview .open-eyes,#shop-preview .normal-mouth{display:block!important}#shop-preview .resting-front-paws{visibility:visible!important}#shop-preview .face-tilt{transform:none!important}

/* Final three seconds stay beside the timer, away from the cat and mode banner. */
#end-count{font-size:18px;bottom:-25px;background:#fff2cf;color:#884b38;border:2px solid #dfab65;border-radius:10px;padding:2px 8px;line-height:1.2;z-index:5;pointer-events:none}
.journal-entry{width:100%;min-height:52px;margin:12px 0;font-weight:700}
#journal-dialog,#data-confirm{max-width:440px;max-height:calc(100svh - 24px);overflow:auto;text-align:left}
#journal-dialog p,#data-confirm p{font-size:13px}#journal-dialog li{font-size:14px;line-height:1.7;margin:8px 0}#journal-dialog ul{padding-left:20px}
#journal-dialog>button,#data-confirm>button{width:100%;min-height:52px;margin-top:14px}
.restore-label{display:block;margin-top:18px;font-size:14px;font-weight:700}.restore-label input{display:block;width:100%;min-height:48px;margin-top:10px;font:inherit;font-size:13px}
.danger{border:2px solid #b1514e;background:#fff4f0;color:#a23634;border-radius:12px;padding:12px;font-weight:700}
#reset-save{margin-top:30px!important}#journal-message{color:#724b37}

#journal-dialog .shop-heading button{flex-shrink:0;white-space:nowrap;min-width:72px}#journal-dialog .shop-heading h2{font-size:16px}
/* The final count uses the announcement lane above the cat. */
#end-count{top:26px;bottom:auto;left:50%;transform:translateX(-50%);font-size:clamp(24px,6vw,31px);padding:4px 18px;border-radius:20px;line-height:1.2;z-index:6}
body[data-final=true] #notice,body[data-final=true] #mode-banner{visibility:hidden}
.round-points{display:grid;grid-template-columns:auto auto;justify-content:start;gap:2px 12px}
.round-points small{grid-column:1/-1;font-size:11px;color:#776454}.round-points b{font-size:clamp(15px,4vw,20px);color:#357451}.round-points b+b{color:#a44d41}
#score[hidden]{display:none}#result #result-score{font:bold clamp(18px,5vw,24px)/1.5 system-ui;color:#51694d;white-space:normal}
#items,#items[data-side=right]{left:var(--drop-x,12%);right:auto;top:var(--drop-y,100px);width:80px}
#items button{width:80px;height:80px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
#items button small{display:block;max-width:74px;font-size:10px;line-height:1.05;color:#553b31;font-weight:750}
#items button .drop-icon{font-size:34px;line-height:1}
#items button::before{content:'なで用';top:-6px;left:8px;right:8px;line-height:16px}
#items button[data-group=play]{background:#ffdfc4;border-color:#cd7759}
#items button[data-group=play]::before{content:'じゃれあい用'}
#item-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.item-catalog{font-size:13px;line-height:1.7;padding-left:1.25em;text-align:left}
@media(prefers-reduced-motion:no-preference){
 body[data-mode=normal][data-petted=true]:is([data-item=mitten],[data-item=catnip],[data-item=premium_brush]) #cat .face-tilt,#tool-cat:is([data-item=mitten],[data-item=catnip],[data-item=premium_brush]) .face-tilt{animation:item-rub .65s ease-in-out infinite alternate}
 body[data-mode=normal][data-petted=true]:is([data-item=yarn],[data-item=kicker],[data-item=mouse],[data-item=blanket]) #cat .paw-tip,#tool-cat:is([data-item=yarn],[data-item=kicker],[data-item=mouse],[data-item=blanket]) .paw-tip{animation:paw-knead .42s ease-in-out infinite alternate}
 @keyframes item-rub{from{transform:translate(-2px,0) rotate(-2deg)}to{transform:translate(3px,1px) rotate(2deg)}}
}

#training{width:calc(100% - 24px);max-width:440px;max-height:calc(100svh - 24px);overflow:auto;text-align:left;padding:16px}
#training-list section{border-top:1px solid var(--line);padding:12px 0}#training-list p{margin:4px 0}
#training-list button{min-height:44px;padding:6px 14px;border-radius:12px;background:#edf4e6;border:1px solid #8aa189}
#training-wallet,#training-message{font-weight:bold}

#items,#items[data-side=right]{left:auto;right:5%;top:36%;width:92px}
#items button{width:92px;height:92px;min-height:92px}#items button small{font-size:12px;max-width:86px}
#result .eyebrow{font-size:15px}#result #result-copy{white-space:pre-line;font-size:18px;line-height:1.6}#result .result-actions button{font-size:17px}
.album{text-align:left;margin:12px 0}.album summary{padding:12px;font-weight:bold;cursor:pointer}.album ul,.album ol{max-height:38svh;overflow:auto}.album li{margin:6px 0}

#parts{grid-template-columns:repeat(5,minmax(0,1fr))}

#pose-preview{width:100%;height:145px;background:#f8efe2;border-radius:16px}#pose-list button{min-height:44px;padding:5px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}

#result[open]{max-width:420px;width:calc(100% - 16px);padding:12px;max-height:calc(100svh - 12px)}
#result .result-flower{display:none}
#result .eyebrow,#result h1,#result .result-content p,#result #record-message{margin:4px 0}
#result .result-detail{grid-template-columns:repeat(4,1fr);gap:4px;margin:6px 0}
#result .result-detail>div{padding:5px 1px}#result .result-detail b{font-size:19px}
#result #result-copy{font-size:15px;line-height:1.45;text-align:left;background:#f5eee2;border-radius:8px;padding:6px 9px}
#result #result-score{font-size:18px}
#result #reward-message,#result #result-wallet{font-size:13px;line-height:1.4}
#result .result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 0 3px}
#result .result-actions button{min-height:44px;padding:4px;font-size:14px;line-height:1.25}

#close-help{display:block;width:100%;min-height:44px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:14px;font-weight:700}



footer{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:12px 2px;color:#544737;font-size:15px}
footer>span:first-child,footer #help{grid-column:1/-1}
footer>span:first-child{font-weight:700}
footer b{font:700 18px system-ui,sans-serif}
footer #help{background:#ecd9b9;border:1px solid #ac8550;color:#493623;font-weight:700;font-size:16px}
.sipping-lips{display:none}
body[data-suckle=true] .sipping-lips{display:block}
body[data-suckle=true] .soft-eye{display:block}
body[data-suckle=true] .joyful-eye{display:none}
body[data-suckle=true] .hug-paw{animation:none}
body[data-suckle=true] .captured-hand{transform-origin:0 25px;animation:gentle-sip 1.15s ease-in-out infinite}
body[data-biting=true] .hug-paw-left{animation:clasp-left .48s ease-in-out infinite}
body[data-biting=true] .hug-paw-right{animation:clasp-right .48s ease-in-out infinite}
@keyframes clasp-left{50%{transform:translate(5px,-3px) rotate(3deg)}}
@keyframes clasp-right{50%{transform:translate(-5px,-3px) rotate(-3deg)}}
@keyframes gentle-sip{50%{transform:translateY(-2px) rotate(4deg) scaleY(.95)}}
@media(prefers-reduced-motion:reduce){.hug-paw,.hug-squeeze,.captured-hand,.nibble-teeth{animation:none!important}}

#pose-player{margin:12px 0;padding:10px;border-radius:16px;background:#f8efe2;text-align:center}
#pose-caption{margin:0 0 6px}
.album-stage .album-cat{display:block;width:100%;height:auto;max-height:215px}
.album-stage>div{min-width:0}
#pose-player[data-compare=false] :is(.compare-only,.compare-label){display:none}
#pose-player[data-compare=true] .album-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.album-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}
.album-actions button{min-height:44px;border:1px solid #baa88f;border-radius:10px;background:#fffaf1;font-size:14px;padding:6px 10px}
.album-cat[data-motion=normal] [id$="-hugging"]{display:none}
.album-cat[data-motion=normal] [data-pose]{transform-origin:200px 320px;animation:breathe 3s ease-in-out infinite}
.album-cat:is([data-motion=chomp],[data-motion=suckle]) .resting-front-paws{visibility:hidden}
.album-cat[data-motion=chomp] .normal-mouth,.album-cat[data-motion=suckle] :is(.open-eyes,.joyful-eye,.nibble-teeth){display:none}
.album-cat[data-motion=chomp] :is(.biting-mouth,.playful-brows),.album-cat[data-motion=suckle] :is(.content-eyes,.soft-eye,.sipping-lips){display:block}
.album-cat[data-motion=chomp] .hug-paw-left{animation:clasp-left .48s ease-in-out infinite}
.album-cat[data-motion=chomp] .hug-paw-right{animation:clasp-right .48s ease-in-out infinite}
.album-cat[data-motion=suckle] .hug-squeeze{animation:cuddle-squeeze 1s ease-in-out infinite}
.album-cat[data-motion=suckle] .hug-paw{animation:none}
.album-cat[data-motion=suckle] .captured-hand{transform-origin:0 25px;animation:gentle-sip 1.15s ease-in-out infinite}
#pose-player[data-paused=true] *{animation-play-state:paused!important}

body:is([data-biting=true],[data-suckle=true]) #cat :is(.item-snack,.item-play,.item-sprig){visibility:hidden}
@media(prefers-reduced-motion:no-preference){
 :is(#cat,#tool-cat) .prop-roll{animation:toy-roll 1.25s ease-in-out infinite alternate}
 :is(#cat,#tool-cat) :is(.prop-hover,.prop-hop,.prop-dart){animation:toy-bounce .85s ease-in-out infinite alternate}
 :is(#cat,#tool-cat) .prop-hug{animation:paw-knead .55s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
 :is(#cat,#tool-cat) .item-lick{animation:snack-lick .65s ease-in-out infinite}
 body[data-mode=normal]:is([data-item=pillow],[data-item=cushion],[data-item=snack],[data-item=catnip]) #cat .face-tilt,#tool-cat:is([data-item=pillow],[data-item=cushion],[data-item=snack],[data-item=catnip]) .face-tilt{animation:settle-chin 1.5s ease-in-out infinite alternate}
 body[data-mode=normal]:is([data-item=blanket],[data-item=kicker],[data-item=shrimp],[data-item=octopus]) #cat .resting-front-paws,#tool-cat:is([data-item=blanket],[data-item=kicker],[data-item=shrimp],[data-item=octopus]) .resting-front-paws{animation:paw-knead .65s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
}
@keyframes toy-roll{from{transform:translateX(-11px) rotate(-14deg)}to{transform:translateX(9px) rotate(14deg)}}
@keyframes toy-bounce{from{transform:translate(-6px,3px)}to{transform:translate(9px,-10px)}}
@keyframes snack-lick{50%{transform:translateY(5px) scaleY(1.1)}}
@keyframes settle-chin{to{transform:translateY(3px) rotate(2deg)}}

.item-catalog button{width:100%;min-height:44px;text-align:left;padding:6px 9px;border:1px solid #d8cbb5;border-radius:10px;background:#fffaf1;color:#594737}
.item-catalog li{margin:4px 0}
#tool-cat{width:100%;max-height:230px;background:#faf1e2;border-radius:18px}
#tool-hugging{display:none}
#tool-view .secondary{min-height:44px}
@media(prefers-reduced-motion:no-preference){
 .tool-demo-hand>g,.tool-demo-hand>text{animation:tool-stroke 1.45s ease-in-out infinite alternate}
 #tool-cat[data-item=toy] .resting-front-paws{transform-box:fill-box;transform-origin:center;animation:paw-knead .35s infinite}
 #tool-cat[data-item=brush] .face-tilt{animation:item-rub .9s ease-in-out infinite alternate}
}
@keyframes tool-stroke{to{translate:-10px -6px}}

.tool-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;margin:8px 0 12px}
.tool-nav button{min-height:48px;padding:6px 2px;border:1px solid #a89578;border-radius:12px;background:#fffaf1;color:#594737;font-size:15px;font-weight:700}
#tool-position{font-size:13px;font-variant-numeric:tabular-nums}
#tool-voice{min-height:2.8em;line-height:1.4}

@media (orientation:landscape) and (max-height:450px) and (min-width:480px){
 #tool-view[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:5px 12px;width:min(94vw,660px);max-width:none;padding:12px;align-items:center}
 #tool-cat{grid-column:1;grid-row:1/5;height:min(62svh,215px)}
 #tool-view :is(h2,p,.tool-nav,form){grid-column:2;margin:0}
 #tool-view h2{font-size:17px}
 #tool-voice{min-height:0}
}

/* Bunny kicks: rear legs alternate toward the held wrist. */
.kicking-hind-paws{display:none}
body[data-mode=kick] .kicking-hind-paws{display:block}
body[data-mode=kick] .playfield{background:#fae7df;box-shadow:inset 0 0 0 4px #d77d6d}
#mode-banner[data-mode=kick]{color:#9c3b38;background:#ffe6ddf2;border-color:#d57e70}
body[data-mode=kick] .kick-leg{transform-box:fill-box;transform-origin:90% 20%;animation:bunny-kick .32s ease-in-out infinite}
body[data-mode=kick] .kick-leg-right{animation-delay:-.16s}
body[data-mode=kick] .hug-paw{animation:none}
body[data-mode=kick] .captured-hand{animation:gentle-sip .32s ease-in-out infinite}
@keyframes bunny-kick{50%{transform:translate(-9px,-8px) rotate(9deg)}}
@media(prefers-reduced-motion:reduce){.kick-leg{animation:none!important}}

/* First visit: three free companions. */
#starter-dialog{width:calc(100% - 24px);max-width:440px;padding:24px 14px;text-align:center}#starter-dialog h2{font-size:24px;margin:4px 0 12px}#starter-dialog p{font-size:15px;line-height:1.6}#starter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}#starter-options button{padding:8px 2px 14px;border:2px solid #9aad91;border-radius:18px;background:#fffaf0;min-height:140px;font-size:15px}#starter-options button:hover{background:#e9efdf}#starter-options svg{width:100%;height:110px;display:block}#starter-message{color:#52654f}
.starter-cat .fur{fill:var(--fur);stroke:var(--ink);stroke-width:2.8}.starter-cat .cream{fill:var(--belly-fur)}.starter-cat .tail{fill:var(--tail-fur);animation:none}.starter-cat .eye,.starter-cat .line,.starter-cat .outline{stroke:var(--ink)}.starter-cat *{animation:none!important;transition:none!important}
.starter-cat [id$="-hugging"],.starter-cat .content-eyes,.starter-cat .playful-brows,.starter-cat .happy-cheek-lines,.starter-cat .biting-mouth,.starter-cat .suckle-tongue{display:none!important}
.starter-cat .open-eyes,.starter-cat .normal-mouth{display:block!important}.starter-cat .resting-front-paws{visibility:visible!important}.starter-cat .face-tilt{transform:none!important}

/* Keep long pose names clear of the playfield on narrow screens. */
.scene-top{flex-wrap:nowrap;min-width:0}.scene-top #cat-name-label{flex:0 1 42%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.scene-top #pose-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}

/* Keep wardrobe decisions reachable while browsing on a phone. */
#shop-dialog .closet-controls{position:sticky;top:-16px;z-index:4;background:var(--paper);padding:10px 0 8px;border-bottom:1px solid #d6c9b5}
.closet-controls h2{font-size:18px;margin:0 0 8px}.closet-actions{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:8px}.closet-actions button{min-height:48px;padding:8px;font-size:15px}
#shop-selection{display:block;font-size:14px;line-height:1.4;margin-top:8px;overflow-wrap:anywhere}
.closet-controls .shop-purchase{border:0;padding-top:4px}.closet-controls #shop-message{font-size:12px;margin:4px 0 0;line-height:1.4}.closet-controls #shop-payment[hidden]{display:flex!important;visibility:hidden}
#shop-dialog #shop-tabs{position:static}#shop-dialog{scroll-padding-top:240px}#shop-grid button{scroll-margin-top:240px}

#pause-dialog #resume,#pause-dialog #quit-round{display:block;width:100%;min-height:48px;margin-top:12px}#quit-note{font-size:13px;line-height:1.6;color:#68594e}

/* Reserve the same space for owned and unowned selections. */
#shop-selection{min-height:2.8em}.closet-controls #shop-message{min-height:4.2em}
