/* Zählwiese v95: the truly gridded 6×9 storybook driving carpet, restart for every game. */
#app #zw95Restart{
 position:absolute!important;right:max(14px,env(safe-area-inset-right,0px))!important;
 top:max(9px,env(safe-area-inset-top,0px))!important;
 width:clamp(54px,15vw,66px)!important;height:clamp(54px,15vw,66px)!important;
 padding:0!important;margin:0!important;z-index:160!important;
 display:grid!important;place-items:center!important;
 background:transparent!important;border:0!important;box-shadow:none!important;
 border-radius:50%!important;cursor:pointer;touch-action:manipulation!important;
 filter:drop-shadow(0 3px 2px #604b3660);
}
#app #zw95Restart img{display:block!important;width:100%!important;height:100%!important;object-fit:contain;pointer-events:none!important}
#app #zw95Restart:active{transform:scale(.92)}
#app #zw95Restart:focus-visible{outline:4px solid #fff3c2!important;outline-offset:3px}
#app .zw93 .zw94-restart{display:none!important}
#app .zw91 .zw91-small-tools:has([data-tool="reset"]){display:none!important}
#app .zw94-connect .zw94-erase{display:none!important}
#app .zw95-road.main-content{
 position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
 margin:0!important;padding:0!important;overflow:hidden!important;isolation:isolate!important;box-sizing:border-box!important;
 background:#bad7a3 url('/storybook-games-v91/world-drive-portrait.webp') center/100% 100% no-repeat!important;
}
.zw95-road *{box-sizing:border-box}
.zw95-road img{display:block;max-width:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.zw95-road .zw95-title{
 position:absolute;z-index:8;left:17%;top:1%;width:69%;height:10%;
 filter:drop-shadow(0 3px 2px #6f523b50);pointer-events:none
}
.zw95-road .zw95-title img{width:100%;height:100%}
.zw95-road .zw95-goal-card{
 position:absolute;z-index:9;top:12%;left:23%;width:54%;height:12%;
 display:flex;align-items:center;justify-content:center;overflow:visible;
 filter:drop-shadow(0 3px 2px #66503e50)
}
.zw95-road .zw95-goal-paper{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.zw95-road .zw95-goal-crop{
 position:relative;z-index:2;width:auto;height:89%;aspect-ratio:1;max-width:65%;
 border:3px solid #fff2d0;border-radius:16px;object-fit:cover;
 filter:drop-shadow(0 1px 2px #714d364a)
}
.zw95-road .zw95-goal-magnify{
 position:absolute;right:16%;top:18%;width:11%;aspect-ratio:1;border-radius:50%;
 border:4px solid #af8b65;box-shadow:0 2px 1px #755a45a0;
}
.zw95-road .zw95-goal-magnify:after{content:'';position:absolute;left:88%;top:89%;
 width:55%;height:5px;background:#ad8965;transform:rotate(46deg);border-radius:5px}
.zw95-road .zw95-map{
 position:absolute;z-index:12;top:24.8%;left:50%;transform:translateX(-50%);
 height:min(63%,calc(92vw * 1.5));aspect-ratio:2/3;width:auto;max-width:93%;
 border-radius:15px;overflow:hidden;touch-action:none!important;overscroll-behavior:contain;
 border:6px solid #b68e69;background:#9ebe9d;
 box-shadow:0 0 0 3px #f1d8aa,0 5px 5px #6b503c6b;
}
.zw95-road .zw95-map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.zw95-road .zw95-car{
 position:absolute;z-index:15;width:13%;height:8.6%;transform:translate(-50%,-50%);
 pointer-events:none!important;filter:drop-shadow(0 3px 2px #534a396f);
 transition:left .1s linear,top .1s linear;
}
.zw95-road .zw95-car img{width:100%;height:100%;object-fit:contain;animation:zw95-car-idle 4.5s ease-in-out infinite}
.zw95-road .zw95-car.zw95-car-happy img{animation:zw95-car-celebrate 1.4s ease-in-out infinite}
.zw95-road .zw95-success{
 position:absolute;z-index:14;left:50%;top:50%;width:25%;height:19%;
 transform:translate(-50%,-50%) scale(.1);opacity:0;pointer-events:none
}
.zw95-road .zw95-success.is-visible{transform:translate(-50%,-50%) scale(1.18);
 opacity:1;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .4s}
.zw95-road .zw95-success img{width:100%;height:100%}
.zw95-road .zw95-progress{
 position:absolute;z-index:10;bottom:2%;left:13%;width:74%;height:7%;
 display:flex;align-items:center;gap:4px;padding:2px 10px;
 border-radius:28px;background:rgba(255,232,191,.88);
 border:4px solid #a98162;box-shadow:0 3px 2px #71503d33
}
.zw95-road .zw95-progress>img{width:15%;height:95%}
.zw95-road .zw95-progress>img:last-child{border-radius:9px}
.zw95-road .zw95-progress-track{flex:1;height:17px;border-radius:20px;overflow:hidden;
 background:#dbb38c;border:2px solid #8d785f}
.zw95-road .zw95-progress-fill{height:100%;width:0;background:repeating-linear-gradient(135deg,#9bc49b 0 10px,#b8dba8 10px 20px);
 border-radius:20px;transition:width .27s ease-out}
.zw95-road .zw95-caption{position:absolute;left:9%;bottom:0%;width:82%;height:1px;overflow:hidden}
@keyframes zw95-car-idle{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@keyframes zw95-car-celebrate{0%,100%{transform:translateY(0) rotate(-2deg)}45%{transform:translateY(-9px) rotate(7deg)}75%{transform:translateY(-2px) rotate(-4deg)}}
@media(orientation:landscape) and (max-height:650px){
 #app .zw95-road.main-content{background-image:url('/storybook-games-v91/world-drive-landscape.webp')!important}
 .zw95-road .zw95-title{left:63%;top:1%;width:30%;height:16%}
 .zw95-road .zw95-goal-card{left:67%;top:21%;width:27%;height:37%}
 .zw95-road .zw95-goal-crop{height:85%;max-width:70%}
 .zw95-road .zw95-map{left:25%;top:4%;height:90%;max-height:90%;width:auto;aspect-ratio:2/3}
 .zw95-road .zw95-progress{left:66%;top:67%;bottom:auto;width:28%;height:14%;padding:0 5px}
 .zw95-road .zw95-progress-track{height:10px}
}
@media(max-width:355px) and (orientation:portrait){
 .zw95-road .zw95-title{left:17%;top:1%;width:72%}
 .zw95-road .zw95-goal-card{top:12%;height:11%;left:24%;width:55%}
 .zw95-road .zw95-map{top:25%;height:min(61%,calc(91vw * 1.5))}
 .zw95-road .zw95-progress{bottom:1.5%;height:8%}
}
/* Hunting numbers 11, 12, ... without crowding 10 child-sized touch targets */
#app .zw95-hunt.main-content{background-image:url('/storybook-games-v91/world-hunt-portrait.webp')!important}
.zw95-hunt .zw95-hunt-goal{
 flex:none;display:flex;align-items:center;justify-content:center;
 max-width:31%;width:70px;height:78%;object-fit:contain;
 font:900 clamp(37px,11vw,60px)/1 'Segoe Print','Comic Sans MS',sans-serif;
 color:#765647;text-shadow:2px 2px #fff5cf
}
.zw95-hunt .zw95-hunt-stage{top:32%;height:64%;touch-action:manipulation}
.zw95-hunt .zw95-hunt-bubble-number{
 position:absolute!important;z-index:3;left:25%;top:20%;width:51%;height:58%;
 display:flex;align-items:center;justify-content:center;
 color:#765c54;font:900 clamp(25px,8vw,43px)/1 'Segoe Print','Comic Sans MS',sans-serif;
 text-shadow:1px 1px #fff6dc;white-space:nowrap
}
.zw95-hunt img.zw95-hunt-bubble-number{object-fit:contain}
.zw95-hunt .zw95-hunt-bubble.is-burst{animation:zw91-bubble-pop .45s ease-out forwards!important}
.zw95-hunt .zw95-hunt-sparks{position:absolute;z-index:95;inset:0;overflow:hidden;pointer-events:none}
.zw95-hunt .zw95-hunt-mini{position:absolute;width:27px;height:28px;object-fit:contain;pointer-events:none;
 opacity:0;animation:zw95-mini-spark 1.05s ease-out forwards;will-change:transform,opacity}
.zw95-hunt .zw95-hunt-mini.is-heart{width:30px;height:30px}
.zw95-hunt .zw95-hunt-mini.is-balloon{width:42px;height:84px;animation-duration:1.6s}
.zw95-hunt .zw95-hunt-state{position:absolute;left:12%;bottom:1%;width:76%;height:1px;overflow:hidden}
@keyframes zw95-mini-spark{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}
 17%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(.75)}}
@media(orientation:landscape) and (max-height:650px){
 #app .zw95-hunt.main-content{background-image:url('/storybook-games-v91/world-hunt-landscape.webp')!important}
 .zw95-hunt .zw95-hunt-goal{font-size:clamp(31px,10vh,55px)}
 .zw95-hunt .zw95-hunt-bubble-number{font-size:clamp(23px,7vh,38px)}
}
@media(prefers-reduced-motion:reduce){
 .zw95-road .zw95-car img{animation-duration:9s}
 .zw95-hunt .zw95-hunt-mini{animation-duration:1.4s}
}

/* The original full-width header must not cover the top edge of the carpet in landscape. */
#app:has(.zw95-road) .app-header,#app:has(.zw95-road) .header-tools{pointer-events:none!important}
#app:has(.zw95-road) #homeBtn{pointer-events:auto!important}
