.hamster-habitat{display:block;position:relative;width:100%;height:100%;aspect-ratio:4/3;pointer-events:none;isolation:isolate}.hamster-house{position:absolute;left:0;bottom:4%;width:52%;height:75%;overflow:visible}.hamster-wheel{position:absolute;right:0;bottom:3%;width:42%;height:83%}.hamster-wheel svg{width:100%;height:100%;overflow:visible}.hamster-animal{position:absolute;left:35%;bottom:0;width:35%;height:62%;transition:left .45s,bottom .45s;transform-origin:50% 85%;animation:hamster-breathe 4s ease-in-out infinite}.hamster-animal img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #70432425)}.hamster-cheek{position:absolute;top:43%;width:23%;height:23%;border-radius:50%;background:radial-gradient(at 35% 30%,#ffeacb,#e9b070);opacity:0}.hamster-cheek.left{left:15%}.hamster-cheek.right{right:15%}.hamster-seed,.hamster-heart,.hamster-sleep{position:absolute;opacity:0;font-size:clamp(15px,5vw,26px);left:38%;top:60%}.hamster-heart{color:#d77c86;top:-10%}.hamster-sleep{font-size:14px;left:65%;top:-5%;color:#779c9a;white-space:nowrap;animation:hamster-dream 28s infinite}.hamster-feed .hamster-cheek{animation:hamster-chew .45s alternate infinite;opacity:1}.hamster-feed .hamster-seed{animation:hamster-snack 3s both}.hamster-pet .hamster-animal{animation:hamster-wiggle .5s ease-in-out 4}.hamster-pet .hamster-heart{animation:hamster-love 1.4s 2}.hamster-run .hamster-animal{left:64%;bottom:16%;width:27%;height:48%;animation:hamster-jog .22s alternate infinite}.hamster-run .wheel-spin{transform-origin:50px 49px;animation:hamster-wheel 1s linear infinite}.hamster-run .hamster-sleep,.hamster-feed .hamster-sleep,.hamster-pet .hamster-sleep{display:none}.hamster-room-item{width:clamp(110px,34vw,170px);height:clamp(83px,25.5vw,128px)}.product .hamster-habitat{width:130px;height:105px;margin:auto}.stored-decoration-art .hamster-habitat{width:120px;height:95px}.storage-flight .hamster-habitat{width:100%;height:100%}.hamster-dialog{width:min(92vw,420px);padding:20px;background:#fff7e8;border:2px solid #d4b183;border-radius:25px;color:#705039;max-height:88dvh;overflow:auto;text-align:center}.hamster-dialog .avatar-dialog-header{text-align:left}.hamster-dialog h2{font-size:25px;margin:0 0 8px}.hamster-dialog p{font-size:14px;line-height:1.4}.hamster-stage{width:min(100%,290px);height:215px;margin:8px auto 14px;background:radial-gradient(ellipse at 50% 90%,#d8e4c380,transparent 68%);border-radius:22px}.hamster-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.hamster-actions .chip{padding:12px 5px;font-size:14px;min-height:52px;background:#e2eedf;border-color:#b6cbb6;color:#3d6a59;box-shadow:0 2px #b8cbb4}.hamster-actions small{display:block;font-size:10px;margin-top:2px}.hamster-status{min-height:40px;color:#63826e}.hamster-utility{display:flex;justify-content:center;gap:10px}.hamster-utility button{font-size:12px;background:transparent;box-shadow:none;padding:8px}.hamster-storage-note{font-size:11px!important;color:#9c8269}.hamster-name-form{display:grid;gap:12px;text-align:left}.hamster-name-form label{font-size:14px}.hamster-name-form input{font:inherit;font-size:20px;width:100%;min-width:0;border:2px solid #c6d6bc;border-radius:14px;background:#fffdf5;padding:12px;color:#705039;box-sizing:border-box}.hamster-name-form .primary{width:100%;padding:13px}.hamster-dialog button:focus-visible,.hamster-name-form input:focus-visible{outline:3px solid #2e8b80;outline-offset:3px}@keyframes hamster-breathe{50%{transform:translateY(-2px) scale(1.025)}}@keyframes hamster-wiggle{25%{transform:rotate(-9deg) translateY(-6px)}75%{transform:rotate(9deg)}}@keyframes hamster-love{0%{opacity:0;transform:translateY(12px) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translateY(-22px) scale(1.2)}}@keyframes hamster-chew{to{transform:scale(1.15)}}@keyframes hamster-snack{0%{opacity:0;transform:translateY(14px)}20%,70%{opacity:1}100%{opacity:0;transform:translateY(-12px) scale(.5)}}@keyframes hamster-wheel{to{transform:rotate(360deg)}}@keyframes hamster-jog{to{transform:translateY(-3px) rotate(-4deg)}}@keyframes hamster-dream{0%,83%,100%{opacity:0}88%,96%{opacity:1;transform:translateY(-8px)}}@media(max-height:650px){.hamster-stage{height:160px;width:215px}.hamster-dialog{padding:15px}.hamster-dialog h2{font-size:22px}.hamster-room-item{width:110px;height:83px}}@media(prefers-reduced-motion:reduce){.hamster-habitat *{animation:none!important;transition:none!important}.hamster-pet .hamster-heart,.hamster-feed .hamster-seed{opacity:1}}
/* Version 52: one illustrated habitat, soft bedding, and readable play controls. */
.hamster-bedding{position:absolute;left:0;bottom:0;width:100%;height:35%;border-radius:50%;background:radial-gradient(ellipse,#ead6b7 0,#f1dfc3 55%,#d5bd9a 70%,transparent 73%);box-shadow:0 6px 5px -5px #68482935;transform:scaleY(.7)}
.hamster-house{left:-1%;bottom:6%;width:58%;height:87%;object-fit:contain;filter:drop-shadow(0 3px 2px #734a2920)}
.hamster-wheel{right:-1%;bottom:6%;width:43%;height:83%;filter:drop-shadow(0 3px 2px #734a2920)}
.hamster-wheel>img{display:block;width:100%;height:100%;object-fit:contain}
.hamster-animal{left:29%;bottom:1%;width:40%;height:72%;z-index:2}
.hamster-contact{position:absolute;left:16%;bottom:0;width:70%;height:9%;border-radius:50%;background:#76522e24;filter:blur(2px);z-index:-1}
.hamster-stage{position:relative;width:min(100%,330px);height:auto;aspect-ratio:4/3;margin:12px auto 16px;background:radial-gradient(ellipse at 50% 95%,#d7e4cc85,transparent 70%);border:1px solid #eadbc2;border-radius:24px;box-shadow:inset 0 2px 18px #fffaf1}
.hamster-stage .hamster-habitat{height:100%;width:100%}
.hamster-dialog{background:radial-gradient(ellipse at top,#fffdf5,#fff4e1);box-shadow:0 18px 60px #60401b35,inset 0 2px #fffdf8;padding:22px}
.hamster-dialog .avatar-dialog-header{position:relative;display:block;padding-right:30px;margin-bottom:0;text-align:center}
.hamster-dialog .avatar-dialog-header h2{font-size:28px;line-height:1.15;overflow-wrap:anywhere;color:#684a34;font-weight:600}
.hamster-dialog .avatar-dialog-header p{font-size:13px;color:#998064;margin:7px 0 0}
.hamster-dialog .close-avatar{position:absolute;right:-9px;top:-10px;width:38px;height:38px;border-radius:50%;background:#f4e8d5;color:#977653;box-shadow:inset 0 1px #fff8ed;min-width:38px}
.hamster-actions{gap:10px}
.hamster-actions .chip{display:flex;flex-direction:column;align-items:center;gap:4px;background:linear-gradient(#fffdf5,#f4ecd9);border:1px solid #d6c5a9;border-radius:19px;box-shadow:inset 0 2px #fffef9,0 3px #deccac;padding:10px 4px;min-height:100px;color:#735b42;font-size:16px;transition:background .15s}
.hamster-actions .chip:active{background:#e7efdd}
.hamster-actions .chip small{font-size:10px;color:#9b8467;margin:0;font-weight:400}
.hamster-action-icon{width:36px;height:36px;display:block;filter:drop-shadow(0 2px 1px #92653615)}
.hamster-action-icon svg{width:100%;height:100%}
.hamster-status{margin:14px 0 3px;min-height:36px;font-size:13px!important;color:#6c8b74}
.hamster-utility{border-top:1px solid #eadcc6;padding-top:7px;margin-top:3px}
.hamster-name-form{gap:10px}
.hamster-name-form label{text-align:center;color:#907456;font-size:13px}
.hamster-name-form input{text-align:center;background:#fffdf6;border-color:#c8d6bd;box-shadow:inset 0 2px 4px #8a6b3210}
.hamster-name-form .primary{border-radius:16px;background:linear-gradient(#80b599,#609b7d);border:1px solid #55866d;box-shadow:inset 0 1px #a5ceb4,0 3px #4e7d63;color:white;font-size:17px}
.hamster-seed{left:40%;top:57%;width:21%;height:25%;font-size:0;z-index:3}
.hamster-seed svg{width:100%;height:100%;filter:drop-shadow(0 1px 1px #5a371735)}
.hamster-feed .hamster-seed{animation:hamster-seed-to-paws 3s both}
.hamster-feed .hamster-cheek{background:radial-gradient(at 30% 25%,#ffe8c8ee,#efbc84d9 70%,transparent);filter:blur(1px);animation:hamster-cheek-puff 3s both}
.hamster-feed .hamster-cheek.left{left:14%;top:40%;width:28%;height:23%}
.hamster-feed .hamster-cheek.right{right:10%;top:40%;width:28%;height:23%}
.hamster-pet .hamster-animal{animation:hamster-happy-bounce .65s ease-in-out 2}
.hamster-pet .hamster-heart{animation:hamster-love 2.2s 1}
.hamster-paw{display:none;position:absolute;bottom:10%;width:21%;height:9%;background:radial-gradient(at 40% 20%,#ffe0d0,#eaa99a);border-radius:50%;box-shadow:inset 0 -1px #c5887433}
.paw-left{left:22%}.paw-right{right:17%}
.hamster-run .hamster-animal{left:68%;bottom:24%;width:23%;height:43%;animation:hamster-jog .22s alternate infinite}
.hamster-run .hamster-paw{display:block;animation:hamster-little-feet .22s alternate infinite}
.hamster-run .paw-right{animation-delay:-.22s}
.wheel-tread{position:absolute;left:15%;top:8%;width:70%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0 28deg,#b3c49b70 29deg 33deg,transparent 34deg 45deg);mask-image:radial-gradient(circle,transparent 52%,#000 54% 64%,transparent 66%);opacity:0}
.hamster-run .wheel-tread{opacity:.9;animation:hamster-wheel 1.2s linear infinite}
.hamster-peeking .hamster-animal{left:16%;bottom:12%;width:30%;height:51%;clip-path:inset(0 0 24% 0 round 20%);animation:hamster-peek 3.5s ease-in-out infinite}
.hamster-peeking .hamster-contact,.hamster-peeking .hamster-sleep{display:none}
.hamster-welcome-stage{background:radial-gradient(ellipse at 30% 65%,#f2e4bd80,transparent 72%)}
.product .hamster-habitat{width:140px;height:110px}
@keyframes hamster-seed-to-paws{0%{opacity:0;transform:translate(30px,28px) rotate(30deg) scale(.6)}20%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}50%{opacity:1;transform:translateY(-9px) scale(.9)}75%,100%{opacity:0;transform:translateY(-13px) scale(.1)}}
@keyframes hamster-cheek-puff{0%,25%,100%{opacity:0;transform:scale(.5)}45%,85%{opacity:.95;transform:scale(1.04)}60%,75%{transform:scale(1.12);opacity:1}}
@keyframes hamster-happy-bounce{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-9px) rotate(-5deg)}60%{transform:translateY(-3px) rotate(5deg)}}
@keyframes hamster-little-feet{to{transform:translateY(-6px) rotate(15deg)}}
@keyframes hamster-peek{50%{transform:translateY(3px) rotate(-3deg)}}
@media(max-width:360px){.hamster-dialog{padding:17px}.hamster-actions{gap:7px}.hamster-actions .chip{min-height:88px;font-size:14px}.hamster-actions .chip small{font-size:9px}}
@media(max-height:700px){.hamster-dialog{padding:16px}.hamster-stage{max-width:250px;margin:8px auto 12px}.hamster-dialog .avatar-dialog-header h2{font-size:24px}.hamster-actions .chip{min-height:83px;padding:7px 3px}.hamster-action-icon{width:29px;height:29px}.hamster-status{min-height:32px;margin-top:10px}.hamster-storage-note{margin-bottom:0}}
@media(prefers-reduced-motion:reduce){.hamster-habitat *{animation:none!important;transition:none!important}.hamster-pet .hamster-heart{opacity:1}.hamster-feed .hamster-seed,.hamster-feed .hamster-cheek{opacity:1}.hamster-run .wheel-tread{opacity:.9}}
/* Rotate only the illustrated circular wheel; the wooden stand stays still. */
.hamster-wheel>img.wheel-spin{position:absolute;inset:0;clip-path:circle(43% at 50% 43%);transform-origin:50% 43%}
.hamster-run .wheel-spin{animation:hamster-wheel 1.4s linear infinite}
.hamster-run .wheel-tread{display:none}
.hamster-peeking .hamster-animal{left:17%;width:24%;height:48%;bottom:12%;clip-path:inset(0 0 30% 0 round 12%)}
.hamster-peeking .hamster-animal{left:19%;bottom:18%;width:20%;height:36%;clip-path:inset(0 round 45% 45% 8% 8%);overflow:hidden}
.hamster-peeking .hamster-animal>img{transform:translateY(25%) scale(1.1)}
/* Version 53: foreground pet, smaller furnishings, original-fur cheek motion. */
.hamster-house{width:44%;height:66%;left:0;bottom:6%}
.hamster-wheel{width:32%;height:64%;right:-1%;bottom:2%}
.hamster-animal{width:52%;height:88%;left:23%;bottom:0}
.hamster-portrait{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 2px #70432425)}
.hamster-wheel-art{display:block;width:100%;height:100%;overflow:visible}
.wheel-rotor{transform-box:view-box;transform-origin:305px 278px}
.hamster-run .wheel-rotor{animation:hamster-wheel 1.4s linear infinite}
.hamster-run .hamster-animal{left:76%;bottom:15%;width:18%;height:32%;animation:hamster-jog .22s alternate infinite}
.hamster-seed{left:34%;top:52%;width:33%;height:35%}
.hamster-heart{display:block;width:25%;height:25%;font-size:0;top:1%;left:36%;z-index:5;opacity:0}
.hamster-heart svg{width:100%;height:100%;filter:drop-shadow(0 2px 2px #be74863b)}
.hamster-pet .hamster-heart{animation:hamster-heart-bloom 2.5s ease-out 1 both}
.hamster-pet .heart-0{--heart-x:-34px;--heart-r:-16deg;left:17%;animation-delay:0s}
.hamster-pet .heart-1{--heart-x:0px;--heart-r:5deg;left:39%;width:30%;height:30%;top:-5%;animation-delay:.18s}
.hamster-pet .heart-2{--heart-x:32px;--heart-r:18deg;left:64%;animation-delay:.35s}
@keyframes hamster-heart-bloom{0%{opacity:0;transform:translate(0,14px) rotate(0) scale(.3)}20%{opacity:1;transform:translate(0,-6px) rotate(var(--heart-r)) scale(1.05)}55%{opacity:1}100%{opacity:0;transform:translate(var(--heart-x),-48px) rotate(var(--heart-r)) scale(.8)}}
/* The welcome crop remains aligned to the smaller cottage doorway. */
.hamster-peeking .hamster-animal{left:14%;bottom:16%;width:16%;height:29%;clip-path:inset(0 round 45% 45% 8% 8%);overflow:hidden}
.hamster-peeking .hamster-animal>.hamster-portrait{transform:translateY(25%) scale(1.1)}
@media(prefers-reduced-motion:reduce){.hamster-habitat *{animation:none!important;transition:none!important}.hamster-pet .hamster-heart{opacity:1;transform:translateY(-8px)}.hamster-run .wheel-rotor{animation:none!important}}
/* Version 54: authored, aligned feeding poses instead of distorted fur. */
.hamster-portrait{position:relative;filter:drop-shadow(0 3px 2px #70432425)}
.hamster-portrait .hamster-pose{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;filter:none}
.hamster-portrait .pose-rest{opacity:1}
.hamster-feed .pose-rest{animation:hamster-rest-feed 4.6s linear both}
.hamster-feed .pose-hold{animation:hamster-hold-feed 4.6s linear both}
.hamster-feed .pose-nibble{animation:hamster-nibble-feed 4.6s linear both,hamster-nibble-bob .26s ease-in-out infinite;transform-origin:50% 70%}
.hamster-feed .pose-full{animation:hamster-full-feed 4.6s linear both}
@keyframes hamster-rest-feed{0%{opacity:1}5%,89%{opacity:0}96%,100%{opacity:1}}
@keyframes hamster-hold-feed{0%{opacity:0}5%,23%{opacity:1}26%,33%{opacity:0}35%,38%{opacity:1}40%,46%{opacity:0}48%,50%{opacity:1}52%,100%{opacity:0}}
@keyframes hamster-nibble-feed{0%,23%{opacity:0}26%,33%{opacity:1}35%,38%{opacity:0}40%,46%{opacity:1}48%,50%{opacity:0}52%,59%{opacity:1}63%,100%{opacity:0}}
@keyframes hamster-full-feed{0%,59%{opacity:0}63%,89%{opacity:1}96%,100%{opacity:0}}
@keyframes hamster-nibble-bob{50%{transform:translateY(-1px) rotate(.5deg)}}
@media(prefers-reduced-motion:reduce){.hamster-feed .hamster-pose{animation:none!important}.hamster-feed .pose-rest{opacity:0}.hamster-feed .pose-full{opacity:1}}
