/* Dino-only presentation; maze coordinates stay 900 by 540. */
.dino-board{background-image:none!important;background:#b6ce8b;border:5px solid #fff8df;box-shadow:0 7px 0 #77946c,0 14px 28px #294f4430;overflow:clip;--trail-top:#fff0bd;--trail-bottom:#c6a571;--edge:#5f8153;--dots:#65824d}
.dino-board[data-environment=volcano]{--trail-top:#ffe6ba;--trail-bottom:#cc9a73;--edge:#947962}
.dino-board[data-environment=jungle]{--trail-top:#f2ecc2;--trail-bottom:#b5b384;--edge:#48785a}
.dino-board[data-environment=swamp]{--trail-top:#f0e9c1;--trail-bottom:#abb48b;--edge:#4f8176}
.dino-board[data-environment=valley]{--trail-top:#fff0ce;--trail-bottom:#bfaf8c;--edge:#8a9b7a}
.dino-world{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#a2c58c}
.dino-world>svg{width:100%;height:100%;display:block}
.dino-svg{filter:drop-shadow(0 4px 3px #2f4d4255)}
.dino-route-outline{stroke-width:94;stroke:color-mix(in srgb,var(--edge) 65%,#dbc391)}
.dino-route{stroke:url(#dino-trail-light);stroke-width:82;filter:url(#dino-trail-relief)}
.dino-route-texture{stroke-width:78;opacity:.8}
.dino-route-shine{fill:none;stroke:#fff7d2;stroke-opacity:.24;stroke-width:51;stroke-linecap:round;stroke-linejoin:round}
.dino-dots{stroke-width:7;stroke:var(--dots);stroke-dasharray:1 23;filter:drop-shadow(0 1px #fff8d7)}
.dino-prop{background:none!important;width:9%;filter:none}
.dino-prop svg{display:block;width:100%;height:100%;overflow:visible}
.dino-prop.prop-fern{animation:none}
.prop-leaves{transform-origin:0 42px;animation:dino-leaf-wave 5s ease-in-out infinite;animation-delay:var(--delay)}
.dino-sprite.articulated,.dino-marker.goal .dino-sprite{background:none!important;animation:none;transform:none}
.dino-sprite.articulated>svg{width:100%;height:100%;overflow:visible;transform:scaleX(var(--facing,1))}
.dino-drag{width:clamp(92px,10vw,125px);height:clamp(99px,11vw,134px);filter:none;transition:none}
.dino-drag:before{content:'';position:absolute;left:20%;right:14%;bottom:7%;height:12%;border-radius:50%;background:#304c3b35;filter:blur(2px)}
.dino-drag:active .sprite-dinosaur{transform:none;animation:none}
.dino-character{transform-origin:80px 150px;animation:dino-idle-body 3s ease-in-out infinite}
.dino-head{transform-origin:90px 91px;animation:dino-head-look 5s ease-in-out infinite}
.dino-eyes{transform-box:fill-box;transform-origin:center;animation:dino-blink 5.7s infinite}
.dino-tail{transform-origin:54px 119px;animation:dino-tail-sway 2.7s ease-in-out infinite}
.dino-leg{transform-origin:85px 121px}
.dino-drag.is-walking .dino-character{animation:none}
.dino-drag.is-walking .leg-front{animation:dino-leg-step .34s ease-in-out infinite}
.dino-drag.is-walking .leg-back{animation:dino-leg-step .34s ease-in-out -.17s infinite}
.dino-drag.is-walking .dino-head{animation:none}
.dino-arm{transform-origin:62px 94px}
.dino-drag.is-walking .dino-arm{animation:dino-arm-step .34s ease-in-out infinite}
.dino-drag.is-walking .dino-tail{animation:dino-tail-sway .65s ease-in-out infinite}
.dino-marker.goal{width:clamp(78px,10vw,122px);filter:drop-shadow(0 5px 2px #35504335)}
.dino-marker.goal .dino-sprite>svg{width:100%;height:100%;overflow:visible}
.dino-marker.goal:before{inset:24% 5% 3%;height:auto;border:none;background:radial-gradient(ellipse,#fff9b16b,transparent 70%)}
.dino-marker.goal:after{content:'✦';top:-4%;font-size:20px;color:#f8ce56;background:transparent;border:0;text-shadow:0 2px #fff8cc;padding:0;animation:dino-goal-star 3s ease-in-out infinite}
.goal-egg{transform-origin:60px 82px;animation:dino-egg-idle 4s ease-in-out infinite}
.goal.is-near .goal-egg{animation:dino-egg-near .7s ease-in-out infinite}
.goal.is-near:before{background:radial-gradient(ellipse,#fff48b9c,transparent 72%)}
.goal.is-near:after{animation:dino-goal-star .7s ease-in-out infinite}
.dino-marker.start{margin-top:-54px;background:linear-gradient(#83ab64,#557d4c);border-color:#eff8cd;box-shadow:0 3px #426446;font-size:11px;z-index:4}
.dino-ambient{z-index:1}
.dino-insect{position:absolute;display:block;width:30px;height:22px;left:var(--x);top:var(--y);animation:dino-insect-flight 11s ease-in-out infinite;animation-delay:var(--delay)}
.dino-insect:before,.dino-insect:after{content:'';position:absolute;top:0;width:13px;height:18px;border-radius:70% 30% 60% 30%;background:#ffc0a0;border:1px solid #fff1c3;transform-origin:100% 60%;animation:dino-wing .22s ease-in-out infinite alternate}
.dino-insect:before{left:1px}.dino-insect:after{right:1px;transform-origin:0 60%;background:#ffe09a}
.dino-insect.dragonfly:before,.dino-insect.dragonfly:after{height:8px;width:20px;background:#c9f3f2b0;border-color:#efffff;top:7px}
.dino-insect.dragonfly{width:39px}
.world-cloud{animation:dino-cloud 24s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.world-fronds{transform-origin:0 40px;animation:dino-tree-sway 7s ease-in-out infinite}
.world-smoke{animation:dino-smoke 5s linear infinite;transform-box:fill-box;transform-origin:center}
.smoke-two{animation-delay:-1.7s}.smoke-three{animation-delay:-3.4s}
.world-lava{animation:dino-lava 3s ease-in-out infinite}
.world-ripple{transform-box:fill-box;transform-origin:center;animation:dino-water-ripple 4s ease-out infinite}
.world-waterfall{animation:dino-waterfall 1.8s linear infinite}
.dino-board.is-paused *,.dino-screen[hidden] *{animation-play-state:paused!important}
.dino-world-cover{background-image:none!important;background:#b7d892;isolation:isolate;transform:none}
.dino-world-cover>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.dino-cover-path{z-index:1;filter:drop-shadow(0 3px 2px #314c4555)}
.dino-cover-friend{position:absolute;z-index:2;left:27%;top:27%;width:47%;height:65%;filter:drop-shadow(0 3px 2px #27453740)}
.dino-cover-goal{position:absolute;z-index:2;left:74%;top:45%;width:25%;height:39%}
.dino-cover-friend svg,.dino-cover-goal svg{width:100%;height:100%}
.dino-world-cover *{animation:none!important}
@keyframes dino-idle-body{50%{transform:translateY(-1px) scale(1.018,1.022)}}
@keyframes dino-head-look{50%{transform:rotate(2deg)}}
@keyframes dino-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.09)}}
@keyframes dino-tail-sway{50%{transform:rotate(-8deg)}}
@keyframes dino-walk-bounce{50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes dino-leg-step{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg) translateY(-3px)}}
@keyframes dino-arm-step{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}
@keyframes dino-head-step{50%{transform:rotate(-3deg) translateY(1px)}}
@keyframes dino-leaf-wave{50%{transform:rotate(4deg) scaleX(.97)}}
@keyframes dino-tree-sway{50%{transform:skewX(2deg)}}
@keyframes dino-cloud{to{translate:20px 0}}
@keyframes dino-smoke{0%{translate:0 0;scale:.65;opacity:0}20%{opacity:.7}100%{translate:-14px -55px;scale:1.7;opacity:0}}
@keyframes dino-lava{50%{opacity:.5;stroke:#ffd494}}
@keyframes dino-water-ripple{0%{scale:.6;opacity:0}20%{opacity:.6}100%{scale:1.6;opacity:0}}
@keyframes dino-waterfall{to{stroke-dashoffset:-46}}
@keyframes dino-egg-idle{0%,82%,100%{transform:rotate(0)}88%{transform:rotate(-4deg)}94%{transform:rotate(4deg)}}
@keyframes dino-egg-near{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg) translateY(-5px)}}
@keyframes dino-goal-star{50%{transform:translateX(-50%) scale(1.25);opacity:.65}}
@keyframes dino-insect-flight{0%,100%{transform:translate(0,0) rotate(-8deg)}30%{transform:translate(36px,-17px) rotate(8deg)}60%{transform:translate(12px,12px) rotate(-4deg)}}
@keyframes dino-wing{to{scale:.4 1}}
@media(max-width:760px){.dino-drag{width:85px;height:92px}.dino-marker.goal{width:78px}.dino-marker.start{margin-top:-45px}.dino-board{border-width:4px}.dino-insect{scale:.8}}
@media(orientation:landscape) and (max-height:650px){.dino-drag{width:80px;height:86px}.dino-marker.goal{width:75px}.dino-marker.start{margin-top:-40px}}
@media(prefers-reduced-motion:reduce){.dino-screen *{animation:none!important}}

/* Optional adventure mode leaves the original toddler maze untouched. */
.dino-options{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.dino-difficulty-label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:900;color:#426e38}
.dino-difficulty{min-height:46px;max-width:190px;padding:8px 28px 8px 10px;border:3px solid white;border-radius:15px;background:#e1f4c3;color:#426e38;font:inherit;box-shadow:0 3px 0 #91ae75;touch-action:manipulation}
.dino-board[data-difficulty=longer] .dino-route-outline{stroke-width:82}
.dino-board[data-difficulty=longer] .dino-route{stroke-width:70}
.dino-board[data-difficulty=longer] .dino-route-texture{stroke-width:66}
.dino-board[data-difficulty=longer] .dino-route-shine{stroke-width:44}
@media(max-width:600px){.dino-top{flex-wrap:wrap;gap:6px}.dino-options{justify-content:flex-start}.dino-difficulty{font-size:14px;max-width:180px}.dino-difficulty-label{font-size:12px}.dino-options .dino-guide-toggle{min-height:46px}}
/* Raised sandstone trails and a richer prehistoric activity table. */
.dino-route-shadow{fill:none;stroke:#263f3b80;stroke-width:103;stroke-linejoin:round;stroke-linecap:round;transform:translateY(7px)}
.dino-route-outline{stroke:#9c835f;stroke-width:95;filter:drop-shadow(0 2px 1px #f2e7af)}
.dino-route{stroke-width:82}.dino-route-shine{stroke-opacity:.32;stroke-width:52;transform:translateY(-3px)}
.dino-prop.prop-detail{width:var(--prop-size,8%);height:auto;aspect-ratio:1.18;filter:drop-shadow(0 5px 2px #29473b35)}
.dino-drag .articulated>svg{filter:drop-shadow(0 3px 2px #26453435)}
.dino-eyes{animation:dino-blink 3.6s infinite}
.dino-board[data-difficulty=challenge] .dino-route-shadow{stroke-width:64;transform:translateY(5px)}
.dino-board[data-difficulty=challenge] .dino-route-outline{stroke-width:59}
.dino-board[data-difficulty=challenge] .dino-route{stroke-width:49}
.dino-board[data-difficulty=challenge] .dino-route-texture{stroke-width:47}
.dino-board[data-difficulty=challenge] .dino-route-shine{stroke-width:30}
.dino-board[data-difficulty=challenge] .dino-dots{stroke-width:5;stroke-dasharray:1 18}
.dino-board[data-difficulty=challenge] .dino-drag{width:clamp(57px,7vw,82px);height:clamp(61px,7.5vw,88px)}
.dino-board[data-difficulty=challenge] .dino-marker.goal{width:clamp(51px,6.5vw,73px)}
.dino-board[data-difficulty=longer] .dino-route-shadow{stroke-width:90}
#dino-color{min-width:105px;max-width:125px;background:linear-gradient(#f9e6b3,#dbedd1)}
.dino-board{height:min(60vw,calc(100dvh - 240px));min-height:300px}
@media(max-width:600px){.dino-board{height:65vw;min-height:260px}.dino-options{gap:6px}.dino-options label{font-size:12px}#dino-color{min-width:95px}.dino-board[data-difficulty=challenge] .dino-drag{width:55px;height:59px}}
@media(orientation:landscape) and (max-height:650px){.dino-board{height:calc(100dvh - 220px);min-height:220px}}
@media(prefers-reduced-motion:reduce){.dino-screen *{animation:none!important}}
.prop-detail svg{transform-origin:center 85%;animation:dino-prop-life 7s ease-in-out infinite;animation-delay:var(--delay)}
@keyframes dino-prop-life{50%{transform:translateY(-1px) rotate(.6deg)}}
@media(prefers-reduced-motion:reduce){.dino-screen *{animation:none!important}}
/* Picture choices: toddlers can recognize Dino's color without reading. */
#dino-color.dino-color-picker{display:flex;gap:5px;min-width:0;max-width:none;background:none;align-items:center}
.dino-color-picker button{position:relative;width:57px;height:62px;padding:2px;border:3px solid #fff9e8;border-radius:17px;background:radial-gradient(ellipse at top,#fffdf3,var(--dino-light));box-shadow:0 3px var(--dino-dark);touch-action:manipulation;cursor:pointer}
.dino-color-picker button svg{width:100%;height:100%;overflow:visible;pointer-events:none}
.dino-color-picker button .dino-character,.dino-color-picker button .dino-head,.dino-color-picker button .dino-tail{animation:none}
.dino-color-picker button[aria-pressed=true]{border-color:#ffe277;box-shadow:0 3px var(--dino-dark),0 0 0 2px #bd8e45;transform:translateY(-2px)}
.dino-color-picker button[aria-pressed=true]:after{content:'✓';position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border:2px solid white;border-radius:50%;background:#477554;color:white;font:900 14px sans-serif;display:grid;place-items:center}
.dino-color-picker button:active{transform:translateY(2px)}.dino-color-picker button:focus-visible{outline:3px solid #7364b8;outline-offset:3px}
.dino-options{gap:10px}.dino-top{gap:8px}.dino-options .dino-difficulty{max-width:180px}
@media(max-width:1050px){.dino-top{flex-wrap:wrap}.dino-options{justify-content:flex-start}.dino-color-picker button{width:53px;height:58px}}
@media(max-width:600px){.dino-options{width:100%;gap:9px}.dino-color-picker{flex-basis:100%}.dino-color-picker button{width:55px;height:59px}.dino-board{min-height:260px}}

/* Four coherent painted walk poses; input position remains immediate. */
.dino-raster-color{isolation:isolate}
.dino-walk-frame{opacity:0}.dino-walk-frame.frame-1{opacity:1}
.dino-walk-body{transform-origin:160px 365px;animation:dino-painted-breathe 3.7s ease-in-out infinite}
.dino-walk-lids{fill:#a2c6a2;opacity:0;animation:dino-painted-blink 3.4s infinite}
.dino-drag.is-walking .dino-walk-body{animation:none}
.dino-drag.is-walking .frame-0{animation:dino-frame-0 .64s steps(1,end) infinite}
.dino-drag.is-walking .frame-1{animation:dino-frame-1 .64s steps(1,end) infinite}
.dino-drag.is-walking .frame-2{animation:dino-frame-2 .64s steps(1,end) infinite}
.dino-drag.is-walking .frame-3{animation:dino-frame-3 .64s steps(1,end) infinite}
.dino-drag.is-walking:after{content:'';position:absolute;width:23%;height:9%;left:21%;bottom:4%;border-radius:50%;border:2px solid #fff0bba6;box-shadow:24px 2px 0 -2px #fff0bb85;pointer-events:none;animation:dino-foot-dust .64s ease-out infinite}
.dino-color-picker .dino-walk-body,.dino-color-picker .dino-walk-lids{animation:none}
.dino-color-picker .dino-walk-lids{opacity:0}
.dino-drag.happy .dino-walk-body{animation:dino-painted-cheer .5s ease-out 2}
@keyframes dino-frame-0{0%,24.99%{opacity:1}25%,100%{opacity:0}}
@keyframes dino-frame-1{0%,24.99%,50%,100%{opacity:0}25%,49.99%{opacity:1}}
@keyframes dino-frame-2{0%,49.99%,75%,100%{opacity:0}50%,74.99%{opacity:1}}
@keyframes dino-frame-3{0%,74.99%{opacity:0}75%,100%{opacity:1}}
@keyframes dino-painted-breathe{50%{transform:translateY(-2px) scale(1.008,1.012)}}
@keyframes dino-painted-blink{0%,43%,48%,100%{opacity:0}44%,47%{opacity:1}}
@keyframes dino-foot-dust{0%{opacity:0;transform:scale(.6)}35%{opacity:.65}100%{opacity:0;transform:translateY(4px) scale(1.2)}}
@keyframes dino-painted-cheer{50%{transform:translateY(-12px) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){.dino-walk-frame{animation:none!important;opacity:0!important}.dino-walk-frame.frame-1{opacity:1!important}.dino-drag:after{display:none!important}}

#dino-title{white-space:nowrap}.dino-top>div:first-child{flex-shrink:0}.dino-options{flex-wrap:wrap;justify-content:flex-end;max-width:750px}.dino-options .dino-guide-toggle{font-size:14px;min-height:44px;padding:8px 12px;min-width:95px}
@media(max-width:1050px){.dino-options{justify-content:flex-start;max-width:none}.dino-top h1{font-size:32px}}
