/* Dino Maze: illustrated landscapes, readable paths, and touch-first characters. */
.dino-tile{background:linear-gradient(145deg,#d7f3aa,#a9dc85);color:#426e38}
.dino-picture{overflow:hidden;border-radius:30px;background:#88b876 url('dino-worlds.png') 100% 100%/300% 200%;box-shadow:0 5px 0 #729c60;border:3px solid #f7ffe5}
.dino-screen{max-width:1100px;margin:0 auto;padding:10px 18px calc(var(--dock-space) + 28px)}
.dino-screen[hidden]{display:none}
.dino-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:4px 4px 12px}
.dino-kicker{color:#527a38;font-size:13px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.dino-top h1{color:#477e45;font-size:clamp(31px,4vw,48px);line-height:1;margin:4px 0}
.dino-guide-toggle{min-width:140px;min-height:52px;padding:9px 16px;border:4px solid white;border-radius:18px;background:#fff4af;box-shadow:0 4px 0 #b4a75b;color:#645633;font-size:18px;font-weight:900;touch-action:manipulation}
.dino-guide-toggle[aria-pressed=false]{background:#e6e0fa;color:#554d7d;box-shadow:0 4px 0 #aaa1cd}
.dino-board{--trail:#efd49c;--edge:#65804c;--dots:#586e39;position:relative;isolation:isolate;width:100%;height:min(72vw,calc(100dvh - 390px));min-height:240px;overflow:hidden;border:7px solid #fbffe9;border-radius:34px;background-color:#91bd75;background-image:url('dino-worlds.png');background-size:300% 200%;background-position:0 0;box-shadow:0 8px 0 #709964,0 15px 26px #4d865d33;touch-action:none;user-select:none;-webkit-user-select:none}
.dino-board[data-environment=volcano]{background-position:50% 0;--trail:#f6d3a0;--edge:#947356;--dots:#825435}
.dino-board[data-environment=jungle]{background-position:100% 0;--trail:#e9d59e;--edge:#456948;--dots:#446438}
.dino-board[data-environment=valley]{background-position:0 100%;--trail:#f4dfb4;--edge:#8d8571;--dots:#72604b}
.dino-board[data-environment=swamp]{background-position:50% 100%;--trail:#e6d5a0;--edge:#527e72;--dots:#396954}
.dino-svg{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 3px 2px #2c4e423b)}
.dino-route-outline,.dino-route,.dino-dots{fill:none;stroke-linecap:round;stroke-linejoin:round}
.dino-route-outline{stroke:var(--edge);stroke-width:96}
.dino-route{stroke:var(--trail);stroke-width:78}
.dino-dots{stroke:var(--dots);stroke-width:7;stroke-dasharray:1 25}
.dino-board.guide-off .dino-dots{display:none}
.dino-scenery{position:absolute;inset:0;z-index:3;pointer-events:none}
.dino-prop{position:absolute;display:block;width:8%;aspect-ratio:1;background-image:url('dino-sprites.png');background-size:200% 200%;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 2px #21432e38)}
.prop-fern{background-position:0 100%;transform-origin:50% 85%;animation:fern-breeze 5s ease-in-out infinite;animation-delay:var(--delay)}
.prop-rock{background-position:100% 100%}
.dino-marker{position:absolute;z-index:4;transform:translate(-50%,-50%);pointer-events:none}
.dino-marker.start{top:var(--start-y);left:var(--start-x);margin-top:-59px;padding:5px 10px;border:2px solid #fff6c1;border-radius:9px;background:#557e40;box-shadow:0 3px 0 #335634;color:#fff;font-size:12px;letter-spacing:1px;font-weight:900;white-space:nowrap}
.dino-marker.goal{top:var(--goal-y);left:var(--goal-x);width:clamp(74px,9vw,114px);aspect-ratio:1;filter:drop-shadow(0 4px 2px #39462b55)}
.dino-sprite{display:block;width:100%;height:100%;background-image:url('dino-sprites.png');background-size:200% 200%;pointer-events:none}
.sprite-dinosaur{background-position:0 0;transform-origin:50% 80%;animation:dino-breathe 3.5s ease-in-out infinite}
.sprite-nest{background-position:100% 0;animation:nest-welcome 4s ease-in-out infinite;transform-origin:50% 80%}
.sprite-fern{background-position:0 100%;animation:nest-welcome 4s ease-in-out infinite}
.dino-drag{position:absolute;z-index:5;left:var(--dino-x);top:var(--dino-y);transform:translate(-50%,-50%);width:clamp(94px,10vw,126px);height:clamp(94px,10vw,126px);padding:0;border:0;border-radius:40%;background:transparent;filter:drop-shadow(0 5px 2px #31503755);cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}
.dino-drag:active{cursor:grabbing}.dino-drag:active .sprite-dinosaur{animation:none;transform:scale(1.06) rotate(-3deg)}
.dino-drag:focus-visible{outline:4px solid #ffe367;outline-offset:2px}
.dino-drag.bump{animation:dino-bump .4s ease}.dino-drag.happy{animation:dino-happy .5s ease-in-out 2}
.dino-ambient{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.dino-ambient i{position:absolute;left:var(--x);bottom:3%;width:5px;height:5px;border-radius:50%;background:#fff9c5;opacity:0;animation:dino-motes 9s linear infinite;animation-delay:var(--delay)}
[data-environment=volcano] .dino-ambient i{background:#ffd48b;width:4px;height:4px}
[data-environment=swamp] .dino-ambient i{background:#ccffe2;box-shadow:0 0 7px #a8ffd7}
.dino-message{text-align:center;color:#54845d;font-size:19px;font-weight:900;margin:14px 0}
@keyframes fern-breeze{0%,100%{transform:translate(-50%,-50%) rotate(-3deg)}50%{transform:translate(-50%,-50%) rotate(4deg)}}
@keyframes dino-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035,1.045) rotate(1deg)}}
@keyframes nest-welcome{0%,85%,100%{transform:rotate(0)}90%{transform:rotate(-4deg)}95%{transform:rotate(4deg)}}
@keyframes dino-motes{0%{transform:translate(0,0);opacity:0}15%,65%{opacity:.65}100%{transform:translate(25px,-180px);opacity:0}}
@keyframes dino-bump{35%{transform:translate(-50%,-50%) rotate(-9deg) scale(1.05)}70%{transform:translate(-50%,-50%) rotate(8deg)}}
@keyframes dino-happy{50%{transform:translate(-50%,-65%) rotate(8deg)}}
.dino-screen[hidden] *,.dino-board.is-paused *{animation-play-state:paused!important}
@media(max-width:760px){.dino-screen{padding:6px 9px calc(var(--dock-space) + 25px)}.dino-kicker{font-size:11px;letter-spacing:1px}.dino-top h1{font-size:28px}.dino-guide-toggle{min-width:109px;min-height:46px;font-size:14px;padding:6px}.dino-board{height:min(72vw,calc(100dvh - 355px));min-height:230px;border-width:4px;border-radius:25px}.dino-message{font-size:16px}.dino-marker.start{font-size:10px;margin-top:-49px}.dino-drag{width:92px;height:92px}.dino-marker.goal{width:76px}}
@media(orientation:landscape) and (max-height:650px){.dino-board{height:max(220px,calc(100dvh - 300px));min-height:220px}.dino-top{margin-bottom:5px}.dino-message{margin:8px 0}.dino-drag{width:84px;height:84px}}
@media(prefers-reduced-motion:reduce){.dino-screen *{animation:none!important}}
.dino-route-texture{fill:none;stroke:url(#dino-sand);stroke-width:76;stroke-linejoin:round;stroke-linecap:round}
.dino-marker.goal:before{content:'';position:absolute;left:8%;right:8%;bottom:2%;height:42%;border:3px dashed #fff1a1;border-radius:50%;background:#fff2aa30;z-index:-1}
.dino-marker.goal:after{content:'GOAL';position:absolute;top:-7px;left:50%;transform:translateX(-50%);padding:3px 8px;border:2px solid #fff1aa;border-radius:9px;background:#876038;color:white;font-size:11px;font-weight:900;letter-spacing:1px}
