/* ZÄHLWIESE V91 – Original watercolor/pencil pictures on all six rebuilt games.
   This stylesheet intentionally overrides each legacy minigame without altering
   the three already-approved reference games. */
#app .zw91.main-content{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 margin:0!important;padding:0!important;box-sizing:border-box!important;overflow:hidden!important;
 display:block!important;background-color:#8fb890!important;
 background-image:url('/storybook-games-v91/world-feeding-portrait.webp')!important;
 background-size:100% 100%!important;background-position:center!important;
 background-repeat:no-repeat!important;touch-action:manipulation!important;
 font-family:'Segoe Print','Chalkboard SE','Comic Sans MS',sans-serif!important;
 isolation:isolate!important;transform:none!important;
}
#app .zw91-cooking.main-content{background-image:url('/storybook-games-v91/world-cooking-portrait.webp')!important}
#app .zw91-connect.main-content{background-image:url('/storybook-games-v91/world-connect-portrait.webp')!important}
#app .zw91-drive.main-content{background-image:url('/storybook-games-v91/world-drive-portrait.webp')!important}
#app .zw91-hunt.main-content{background-image:url('/storybook-games-v91/world-hunt-portrait.webp')!important}
#app .zw91-maze.main-content{background-image:url('/storybook-games-v91/world-maze-portrait.webp')!important}
.zw91 *,.zw91 *:before,.zw91 *:after{box-sizing:border-box}
.zw91 img{display:block;max-width:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.zw91 .zw91-title{
 position:absolute;z-index:13;left:19%;top:1%;width:78%;height:11%;
 background-position:center;background-size:contain;background-repeat:no-repeat;
 filter:drop-shadow(0 3px 2px #6e533d50);pointer-events:none;
}
.zw91 .zw91-goal{
 position:absolute;z-index:15;left:6%;top:13%;width:88%;height:17%;
 min-height:76px;display:grid!important;place-items:center!important;
 filter:drop-shadow(0 4px 3px #6e513f40);
}
.zw91 .zw91-board-art{width:100%;height:100%;object-fit:fill;position:absolute;inset:0}
.zw91 .zw91-goal-inner{
 position:relative;z-index:2;width:85%;height:85%;display:flex;
 align-items:center;justify-content:center;gap:clamp(4px,2vw,14px);overflow:hidden;
}
.zw91 .zw91-number{height:70%;width:clamp(34px,13vw,70px);object-fit:contain;flex-shrink:0}
.zw91 .zw91-wish-units{flex:1;max-width:79%;height:93%;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px}
.zw91 .zw91-wish-unit{flex:1 1 0;min-width:0;height:94%;transition:opacity .34s,transform .34s}
.zw91 .zw91-wish-unit img{width:100%;height:100%;object-fit:contain}
.zw91 .zw91-wish-unit.is-given{opacity:.24;transform:scale(.75) rotate(-8deg)}
.zw91 .zw91-goal-large{width:30%;height:92%;object-fit:contain}
.zw91 .zw91-goal-small{width:15%;height:75%;object-fit:contain;transform:rotate(-25deg);opacity:.6}
.zw91 .zw91-goal-arrow{width:16%;height:65%;transform:rotate(95deg)}
.zw91 .zw91-stage{
 position:absolute;z-index:12;left:5%;top:32%;width:90%;height:45%;
 display:block;overflow:visible;touch-action:manipulation;
}
.zw91 .zw91-character{
 position:absolute;left:10%;top:0;width:80%;height:95%;object-fit:contain;
 filter:drop-shadow(0 6px 3px #60523c44);animation:zw91-breathe 4.2s ease-in-out infinite;
}
.zw91 .zw91-character.is-eating{animation:zw91-eating .65s ease-in-out infinite}
.zw91 .zw91-character.is-cheering{animation:zw91-cheer .78s ease-in-out 2}
.zw91 .zw91-ground-bowl{position:absolute;z-index:-1;left:19%;bottom:-5%;width:62%;height:21%;object-fit:contain}
.zw91 .zw91-choices{
 position:absolute;z-index:30;left:4%;top:80%;width:92%;height:17%;
 display:flex!important;align-items:center!important;justify-content:space-around!important;
 flex-wrap:nowrap!important;gap:clamp(5px,1vw,15px)!important;overflow:visible!important;
 padding:0!important;margin:0!important;
}
.zw91 button.zw91-coin{
 appearance:none!important;-webkit-appearance:none!important;position:relative!important;
 display:block!important;flex:none!important;width:clamp(76px,26vw,118px)!important;
 height:clamp(76px,26vw,118px)!important;min-width:72px!important;min-height:72px!important;
 border:0!important;outline:0!important;box-shadow:none!important;border-radius:50%!important;
 margin:0!important;padding:0!important;background:transparent!important;
 color:inherit!important;touch-action:manipulation;cursor:pointer!important;
 filter:drop-shadow(0 4px 2px #59442e55);
 transition:transform .22s ease,filter .22s ease!important;
}
.zw91 .zw91-coin-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.zw91 .zw91-coin-icon{position:absolute;left:12%;top:10%;width:76%;height:77%;object-fit:contain}
.zw91 button.zw91-coin:active{transform:scale(.93)!important}
.zw91 button.zw91-coin:focus-visible,.zw91 button.zw91-bubble:focus-visible,.zw91 .zw91-number-node:focus-visible{outline:4px solid #fff3ce!important;outline-offset:3px!important}
.zw91 button.zw91-coin.zw91-wrong,.zw91 button.zw91-bubble.zw91-wrong,.zw91 button.zw91-number-node.zw91-wrong{animation:zw91-wrong .53s ease-in-out!important}
.zw91 .zw91-effects{position:absolute;z-index:90;inset:0;pointer-events:none;overflow:hidden}
.zw91 .zw91-party-piece{
 position:absolute;width:clamp(18px,5vw,34px);height:clamp(18px,5vw,34px);
 opacity:0;object-fit:contain;pointer-events:none;animation:zw91-particle 2.6s ease-out var(--delay) forwards;
}
.zw91 .zw91-party-piece.is-balloon{width:clamp(41px,10vw,64px);height:clamp(95px,25vw,145px);animation:zw91-balloon 3.2s ease-in-out var(--delay) forwards}
.zw91 .zw91-ghost{
 position:absolute;z-index:85;width:clamp(75px,25vw,105px);height:clamp(75px,25vw,105px);
 object-fit:contain;pointer-events:none;will-change:transform;
 filter:drop-shadow(0 3px 2px #6d55454b);
}
.zw91 .zw91-live{position:absolute!important;width:1px!important;height:1px!important;clip:rect(0,0,0,0)!important;overflow:hidden!important}
.zw91 .zw91-animal-grid{
 position:absolute;z-index:20;left:6%;top:13%;width:88%;height:82%;
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));
 justify-items:center;align-items:center;gap:1.1%;overflow:hidden;
}
.zw91 .zw91-animal-grid button.zw91-coin{width:min(24vw,100px)!important;height:min(24vw,100px)!important;min-height:64px!important;min-width:64px!important}
.zw91 .zw91-recipe-grid{
 position:absolute;z-index:20;left:10%;top:22%;width:80%;height:63%;
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));
 justify-items:center;align-items:center;gap:3%;
}
.zw91 .zw91-recipe-grid button.zw91-coin{width:min(35vw,146px)!important;height:min(35vw,146px)!important}
.zw91 .zw91-cooking-stage{top:34%;height:42%}
.zw91 .zw91-cooking-stage .zw91-main-illustration{
 position:absolute;left:25%;top:3%;width:50%;height:90%;
 animation:zw91-breathe 5.8s ease-in-out infinite;
}
.zw91 .zw91-cooking-stage .zw91-main-illustration.is-working{animation:zw91-mix .48s ease-in-out infinite}
.zw91 .zw91-ingredients-in-bowl{
 position:absolute;z-index:4;left:24%;top:50%;width:52%;height:26%;
 display:flex;justify-content:center;align-items:center;
}
.zw91 .zw91-ingredients-in-bowl img{width:29%;height:100%}
.zw91 .zw91-serving .zw91-main-illustration{left:31%;width:38%;height:70%;top:22%}
.zw91 .zw91-friend{position:absolute;top:10%;width:34%;height:74%;animation:zw91-cheer 2.4s ease-in-out infinite}
.zw91 .zw91-friend-left{left:-1%}.zw91 .zw91-friend-right{right:-1%;animation-delay:.9s}
.zw91 .zw91-small-tools{
 position:absolute;z-index:30;left:40%;bottom:2%;width:20%;height:11%;
 display:grid;place-items:center;
}
.zw91 .zw91-small-tools button.zw91-coin{width:clamp(62px,17vw,86px)!important;height:clamp(62px,17vw,86px)!important;min-width:62px!important;min-height:62px!important}
.zw91 .zw91-board-stage,.zw91 .zw91-maze-stage{
 top:32%;left:5%;width:90%;height:54%;touch-action:none;overflow:hidden;border-radius:21px;
 filter:drop-shadow(0 3px 2px #59452f50);
}
.zw91 .zw91-card-background{width:100%;height:100%;position:absolute;inset:0;object-fit:fill}
.zw91 .zw91-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.zw91 .zw91-number-node{
 position:absolute!important;z-index:5;transform:translate(-50%,-50%);width:clamp(58px,17vw,86px);height:clamp(58px,17vw,86px);
 background:transparent!important;border:0!important;padding:0!important;outline:0!important;
 filter:drop-shadow(0 2px 2px #6d543d48);cursor:pointer;touch-action:none;
}
.zw91 .zw91-number-node>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.zw91 .zw91-number-node .zw91-number{position:absolute;left:25%;top:15%;width:50%;height:65%}
.zw91 .zw91-number-node.is-selected{filter:drop-shadow(0 0 7px #fff9d1) brightness(1.08);transform:translate(-50%,-50%) scale(1.08)}
.zw91 .zw91-number-node.is-matched{opacity:.55}
.zw91 .zw91-hunt-stage{top:32%;height:64%;overflow:hidden}
.zw91 .zw91-bubble{
 appearance:none!important;position:absolute!important;transform:translate(-5%,-5%);
 width:clamp(64px,20vw,108px);height:clamp(64px,20vw,108px);
 border:0!important;border-radius:50%!important;box-shadow:none!important;padding:0!important;
 background:transparent!important;touch-action:manipulation;
 animation:none;
}
.zw91 .zw91-bubble:nth-child(3n)>img{animation-delay:-1.2s}
.zw91 .zw91-bubble:nth-child(3n+1)>img{animation-delay:-2.6s}
.zw91 .zw91-bubble>img:first-child{position:absolute;inset:0;width:100%;height:100%}
.zw91 .zw91-bubble .zw91-number{position:absolute;left:29%;top:20%;width:42%;height:58%}
.zw91 .zw91-bubble.is-burst{animation:zw91-bubble-pop .43s ease-out forwards!important}
.zw91 .zw91-bubble.is-popped{opacity:0;pointer-events:none;animation:none!important}
.zw91 .zw91-hunt-step{flex:1;height:40%;display:flex;align-items:center;justify-content:center;gap:3px}
.zw91 .zw91-hunt-step i{width:8%;max-width:15px;aspect-ratio:1;display:block;border-radius:50%;background:#d8bb8f;box-shadow:inset 1px 2px #9b805e}
.zw91 .zw91-hunt-step i.is-past{background:#8aaa83}
.zw91 .zw91-road-stage{
 top:31%;left:4%;width:92%;height:57%;max-height:60%;
 overflow:hidden;border-radius:21px;touch-action:none;box-shadow:0 3px 1px #624f3b45;
 border:6px solid #edcea0;background:#9ab98c;
}
.zw91 .zw91-road-map{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.zw91 .zw91-destination{
 position:absolute;z-index:4;width:20%;height:20%;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 1px #735e4260);
}
.zw91 .zw91-car{
 position:absolute;z-index:6;width:18%;height:18%;transform:translate(-50%,-50%);
 transition:left .12s linear,top .12s linear;filter:drop-shadow(0 4px 2px #5a4b3955);
 pointer-events:auto;touch-action:none;
}
.zw91 .zw91-car img{width:100%;height:100%}
.zw91 .zw91-car.is-arrived{animation:zw91-cheer 1s ease-in-out 3}
.zw91 .zw91-maze-stage{border-radius:23px;touch-action:none}
.zw91 .zw91-maze-player,.zw91 .zw91-maze-friend{
 position:absolute;z-index:8;transform:translate(-50%,-50%);
 pointer-events:auto;touch-action:none;filter:drop-shadow(0 2px 1px #75583d50);
 transition:left .14s ease-out,top .14s ease-out;
}
.zw91 .zw91-maze-player img,.zw91 .zw91-maze-friend img{width:100%;height:100%}
.zw91 .zw91-cuddle{
 position:absolute;z-index:12;left:25%;top:30%;width:50%;height:42%;
 display:flex;align-items:center;justify-content:center;gap:0;
 opacity:0;transform:scale(.3);pointer-events:none;
}
.zw91 .zw91-cuddle img{width:60%;height:100%;animation:zw91-hug 1.2s ease-in-out infinite}
.zw91 .zw91-cuddle img:nth-child(2){margin-left:-13%;animation-delay:-.4s}
.zw91 .zw91-cuddle.is-visible{opacity:1;transform:scale(1);transition:transform .8s ease-out,opacity .5s ease-out}
@keyframes zw91-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
@keyframes zw91-eating{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(4px) rotate(2deg)}}
@keyframes zw91-cheer{0%,100%{transform:translateY(0) rotate(-2deg)}35%{transform:translateY(-12px) rotate(5deg)}75%{transform:translateY(0) rotate(-4deg)}}
@keyframes zw91-wrong{0%,100%{transform:translateX(0)}24%,72%{transform:translateX(-6px) rotate(-3deg)}48%{transform:translateX(6px) rotate(3deg)}}
@keyframes zw91-particle{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scale(.65)}}
@keyframes zw91-balloon{0%{opacity:0;transform:translate(-50%,0) scale(.45)}17%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-140% + var(--dy))) rotate(11deg) scale(1.05)}}
@keyframes zw91-float{0%,100%{transform:translate(-5%,-5%) rotate(-3deg)}50%{transform:translate(-5%,-12%) rotate(4deg)}}
@keyframes zw91-bubble-pop{0%{opacity:1;transform:scale(1)}40%{opacity:1;transform:scale(1.23)}100%{opacity:0;transform:scale(1.56)}}
@keyframes zw91-mix{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(6deg)}}
@keyframes zw91-hug{0%,100%{transform:translateX(0) rotate(-4deg)}50%{transform:translateX(7px) rotate(5deg)}}
@media (max-width:355px) and (orientation:portrait){
 .zw91 .zw91-goal{left:4%;width:92%}
 .zw91 .zw91-title{left:20%;width:79%}
 .zw91 button.zw91-coin{width:29vw!important;height:29vw!important;min-width:70px!important;min-height:70px!important}
 .zw91 .zw91-number-node{width:55px;height:55px}
 .zw91 .zw91-bubble{width:64px;height:64px}
}
@media (orientation:landscape) and (max-height:650px){
 #app .zw91.main-content{background-image:url('/storybook-games-v91/world-feeding-landscape.webp')!important}
 #app .zw91-cooking.main-content{background-image:url('/storybook-games-v91/world-cooking-landscape.webp')!important}
 #app .zw91-connect.main-content{background-image:url('/storybook-games-v91/world-connect-landscape.webp')!important}
 #app .zw91-drive.main-content{background-image:url('/storybook-games-v91/world-drive-landscape.webp')!important}
 #app .zw91-hunt.main-content{background-image:url('/storybook-games-v91/world-hunt-landscape.webp')!important}
 #app .zw91-maze.main-content{background-image:url('/storybook-games-v91/world-maze-landscape.webp')!important}
 .zw91 .zw91-title{left:10%;top:1%;width:42%;height:17%}
 .zw91 .zw91-goal{left:50%;top:12%;width:46%;height:29%;min-height:0}
 .zw91 .zw91-number{width:clamp(30px,10vh,55px)}
 .zw91 .zw91-stage{left:3%;top:19%;width:46%;height:78%}
 .zw91 .zw91-choices{left:53%;top:49%;width:43%;height:43%;gap:3px!important}
 .zw91 button.zw91-coin{width:clamp(64px,21vh,108px)!important;height:clamp(64px,21vh,108px)!important}
 .zw91 .zw91-animal-grid{left:9%;top:22%;width:82%;height:73%;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
 .zw91 .zw91-animal-grid button.zw91-coin{width:clamp(61px,20vh,90px)!important;height:clamp(61px,20vh,90px)!important}
 .zw91 .zw91-recipe-grid{left:12%;top:23%;width:76%;height:72%;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr}
 .zw91 .zw91-recipe-grid button.zw91-coin{width:clamp(72px,24vh,140px)!important;height:clamp(72px,24vh,140px)!important}
 .zw91 .zw91-cooking-stage{left:5%;top:19%;width:43%;height:79%}
 .zw91 .zw91-board-stage,.zw91 .zw91-maze-stage{left:2%;top:13%;width:48%;height:83%;border-radius:15px}
 .zw91 .zw91-number-node{width:clamp(47px,15vh,72px);height:clamp(47px,15vh,72px)}
 .zw91 .zw91-road-stage{left:2%;top:7%;width:48%;height:90%}
 .zw91 .zw91-hunt-stage{left:3%;top:12%;width:46%;height:84%}
 .zw91 .zw91-bubble{width:clamp(50px,15vh,81px);height:clamp(50px,15vh,81px)}
 .zw91 .zw91-small-tools{left:68%;top:61%;width:14%;height:25%;bottom:auto}
 .zw91 .zw91-small-tools button.zw91-coin{width:clamp(62px,19vh,78px)!important;height:clamp(62px,19vh,78px)!important}
}
@media (prefers-reduced-motion:reduce){
 .zw91 .zw91-character,.zw91 .zw91-bubble,.zw91 .zw91-main-illustration{animation-duration:9s}
 .zw91 .zw91-party-piece{animation-duration:3.8s}
 .zw91 .zw91-party-piece.is-balloon{animation-duration:4s}
}

.zw91 .zw91-character .zw91-animal-puppet{display:block;position:relative;width:100%;height:100%;overflow:visible;pointer-events:none}
.zw91 .zw91-character .zw88-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.zw91 .zw91-choices button.zw91-coin{touch-action:none!important}
.zw91 .zw91-choices button.zw91-coin.is-dragging{transform:scale(.93)!important;filter:brightness(1.1) drop-shadow(0 0 7px #ffedc3)}
.zw91-drag-food{position:fixed!important;z-index:99999!important;pointer-events:none!important;width:100px!important;height:100px!important;object-fit:contain!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 7px 3px #4f422e77)}

.zw91 .zw91-bubble>img{animation:zw91-bubble-drift 5.2s ease-in-out infinite}
@keyframes zw91-bubble-drift{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(3deg)}}

/* Preschool-scale painted objects: avoid tiny images within large empty stages. */
.zw91 .zw91-character .zw91-animal-puppet{transform:scale(1.43);transform-origin:center center}
.zw91 .zw91-ground-bowl{left:14%;bottom:-5%;width:72%;height:25%}
.zw91 .zw91-cooking-stage .zw91-main-illustration{left:11%;top:-4%;width:78%;height:106%}
.zw91 .zw91-cooking-stage.zw91-serving .zw91-main-illustration{left:28%;top:19%;width:44%;height:75%}
.zw91 button.zw91-coin .zw91-coin-icon{left:3%;top:3%;width:94%;height:94%}
.zw91 .zw91-animal-grid .zw91-coin-icon{left:-10%;top:-10%;width:120%;height:120%}
.zw91 .zw91-recipe-grid .zw91-coin-icon{left:-1%;top:1%;width:102%;height:100%}
@media(orientation:landscape) and (max-height:650px){
 .zw91 .zw91-character .zw91-animal-puppet{transform:scale(1.32)}
 .zw91 .zw91-cooking-stage .zw91-main-illustration{left:11%;top:-5%;width:78%;height:108%}
}

@media(orientation:landscape) and (max-height:650px){
 .zw91 .zw91-road-stage{left:4%;top:5%;width:min(43vw,calc(90vh * 390 / 510));height:90%;max-height:90%;aspect-ratio:390/510}
}

/* A truly illustrated, always visible and thumb-friendly home button. */
#app:has(.zw91) .app-header{z-index:110!important;pointer-events:none}
#app:has(.zw91) .app-header #homeBtn{
 pointer-events:auto!important;z-index:120!important;
 background:transparent url('/storybook-games-v91/home-button.webp') center/100% 100% no-repeat!important;
 border:0!important;box-shadow:none!important;border-radius:50%!important;
 width:55px!important;height:55px!important;min-width:55px!important;min-height:55px!important;
 padding:0!important;margin:0!important;
 filter:drop-shadow(0 2px 2px #66503e44);
}
#app:has(.zw91) .app-header #homeBtn svg,
#app:has(.zw91) .app-header #homeBtn .zw-home-label{display:none!important}
@media (orientation:landscape) and (max-height:650px){
 .zw91 .zw91-road-stage{left:4%;top:18%;width:min(43vw,calc(80vh * 390 / 510));height:80%;max-height:80%;aspect-ratio:390/510}
}
