/* Illustrated worlds. All source art is local; CSS handles cropping and motion. */
.arcade-sprite{display:inline-block;width:80px;aspect-ratio:1;background-image:url('/assets/images/arcade-creatures.webp?v=20260926d');background-size:400% 200%;background-position:var(--sx,0%) var(--sy,0%);background-repeat:no-repeat;flex:none;filter:drop-shadow(0 6px 5px #090c2440)}
.game-card-art{height:230px;background-image:url('/assets/images/arcade-worlds.webp?v=20260926d');background-size:500% 200%;background-position:var(--wx) var(--wy);isolation:isolate}
.game-card-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#1314248c);z-index:-1}
.game-card-art i.arcade-sprite{width:135px;height:135px;filter:drop-shadow(0 12px 10px #10122f80);color:transparent;animation:creature-float 4s ease-in-out infinite}
.arcade-card:nth-child(2n) .arcade-sprite{animation-delay:-1.5s}.arcade-card:nth-child(3n) .arcade-sprite{animation-delay:-2.8s}
.game-card-art b{border:1px solid #ffffff50;background:#121827ab;border-radius:20px;padding:6px 10px;color:white;backdrop-filter:blur(8px)}
.arcade-card{border-radius:25px;background:#191e2b;border-color:#a5bfe228;box-shadow:0 15px 35px #080c2022}
.arcade-card:hover{transform:translateY(-7px);box-shadow:0 20px 45px #080c2055}
.game-card-copy{gap:13px;padding:26px}.game-card-copy strong{font-size:27px}.arcade-machine{background:linear-gradient(135deg,#202c39,#191729);border-color:#adc5dd33}
.game-display{background:#111a28;isolation:isolate;min-height:550px}
.game-display:before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('/assets/images/arcade-worlds.webp?v=20260926d');background-size:500% 200%;background-position:var(--wx) var(--wy);opacity:.64}
.game-display:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#0b142733,#0c1127a3)}
.world-hud{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#0e162bbc;border-bottom:1px solid #bed9ff22;min-height:80px}
.world-buddy{width:56px;animation:creature-float 3.5s ease-in-out infinite}.world-hud>div{flex:1;min-width:0}.world-hud #world-caption{font-size:11px;line-height:1.5;color:#e0ebfc;display:block}.world-meter{height:5px;background:#ffffff22;margin-top:9px;border-radius:8px;overflow:hidden}.world-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#82e5d0,#fff0a3);transition:width .4s;border-radius:8px}
#delight-toggle{font-size:10px;line-height:1.4;border:1px solid #b7c9db66;border-radius:12px;padding:9px;background:#ffffff10;max-width:95px;min-height:44px}
.game-setting{font-size:12px;display:flex;flex-direction:column;gap:8px;margin-top:20px}.game-setting select{width:100%;background:#172331;border:1px solid #8cabc36e;color:#fff3df;padding:12px;border-radius:10px;font:inherit}.game-guide #pace-note{font-size:10px;color:#b5c9d9;margin-top:8px}
.game-board{min-height:365px;padding:25px;position:relative}.game-message{background:#101827df;color:#e6eef8}.direction-pad{background:#0b1526b0}.game-overlay{background:#091327bd;backdrop-filter:blur(12px)}
.game-overlay>span{font-size:50px}.game-overlay #next-world{font-size:12px;margin-top:18px}.game-overlay h3{color:#fff7e7}
.puzzle-grid{padding:12px;border-radius:22px;background:#0d192aa3;box-shadow:0 12px 40px #0005;border:1px solid #d0e8ff26}
.puzzle-grid button{position:relative;overflow:hidden;border-color:#bacbea5e;box-shadow:0 5px 0 #101c2c8c, inset 0 1px 0 #ffffff22}
.memory-tile{display:grid;place-items:center;background:linear-gradient(145deg,#405a8b,#243356)!important;color:#e9d9ff!important;transform-style:preserve-3d}
.memory-tile .arcade-sprite{width:90%;pointer-events:none}.memory-tile.face-up{background:#c3d8e8!important;animation:card-reveal .3s ease-out}.memory-tile.matched{background:#acd9c7!important;border-color:#e0ffe1;box-shadow:0 0 18px #a4ffd442}.memory-tile.matched .arcade-sprite{animation:creature-float 3s ease-in-out infinite}
.echo-pad{display:flex;align-items:center;justify-content:center;flex-direction:column}.echo-pad .arcade-sprite{width:72%}.echo-pad small{position:absolute;bottom:8px;right:10px;font-size:13px;background:#111827a0;color:white;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}.echo-pad.lit{filter:brightness(1.45);box-shadow:0 0 35px #fff0a580;transform:scale(.97)}
.light-tile .arcade-sprite{width:85%;filter:grayscale(.8) brightness(.35);transition:filter .3s}.light-tile.on .arcade-sprite{filter:drop-shadow(0 0 10px #ffcd5599)}.puzzle-grid .light-tile{background:#162135}.puzzle-grid .light-tile.on{background:#7d5c304a}.light-tile.hinted{outline:3px solid #c4ffcf;outline-offset:-4px}
.picture-grid{position:relative;gap:5px}.puzzle-grid .slide-tile{background-image:url('/assets/images/arcade-worlds.webp?v=20260926d');background-size:1500% 600%;color:white;text-shadow:0 1px 4px #000;font:700 18px Display,Arial;display:flex;align-items:flex-end;justify-content:flex-start;padding:9px;border:1px solid #e6f5ff50;border-radius:8px}.puzzle-grid .slide-tile.empty{background-image:none;background-color:#121a2c77}.picture-peek:after{content:'';position:absolute;inset:12px;background:url('/assets/images/arcade-worlds.webp?v=20260926d') 100% 0%/500% 200%;border-radius:12px;pointer-events:none}.puzzle-actions{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;font-size:11px}
.maze-grid{padding:5px;gap:2px;border-radius:16px;overflow:hidden}.maze-grid .maze-wall{background:linear-gradient(145deg,#3f7564,#183d39);border-radius:5px;box-shadow:inset 0 3px 0 #a1dc9e30}.maze-grid .maze-path{background:#222e3a;color:#ffe69a}.maze-grid .visited{background:#42604b}.maze-grid .explorer{background:#92b987;box-shadow:none;border-radius:5px;position:relative}.maze-grid .arcade-sprite{width:130%;position:absolute;z-index:1}.maze-grid .gem-cell:not(.explorer){color:#9bf1f4;text-shadow:0 0 10px #80ffed}
.arcade-canvas{border:1px solid #d8edff33;box-shadow:0 12px 30px #0004}.game-snake,.game-breaker{padding:12px;min-height:280px}
.comet-field{background:transparent;height:365px}.comet-target{background:none!important;border:0!important;box-shadow:none!important;width:85px;height:85px;transition:left .14s,top .14s}.comet-target .arcade-sprite{width:100%;filter:drop-shadow(0 0 14px #ffd95b66)}.comet-target:focus-visible{outline:3px solid #fff;outline-offset:3px}.comet-instruction{color:#ffffffcf;text-shadow:0 2px 4px #000;font-size:11px;padding:0 10px}
.sort-tube{background:linear-gradient(90deg,#dafcff20,#e3fdff07,#ddf8ff2f);border:2px solid #c6dcedaa;border-top:5px solid #d0e9f699;box-shadow:inset 6px 0 10px #ecffff1f,0 6px 12px #0004;border-radius:12px 12px 24px 24px;padding:18px 7px 9px;transition:transform .25s}
.sort-tube.complete{border-color:#bdffd6;box-shadow:0 0 22px #a3f3ce66}.sort-token:not(.vacant){border-radius:9px 9px 40% 40%;box-shadow:inset 0 4px 4px #ffffff55,inset 0 -4px 5px #0002;position:relative}.sort-token:not(.vacant):after{content:'';width:5px;height:5px;border-radius:50%;background:#ffffff80;position:absolute;right:15%;bottom:15%;animation:potion-bubble 2s infinite}.word-form{background:#101b2ccc;padding:20px;border-radius:19px;border:1px solid #d4e2ff33}.word-tiles{gap:5px}.word-tiles button{width:36px;height:45px;min-height:44px;border:1px solid #fff5ce;border-radius:8px;background:linear-gradient(#fff0c2,#d8a65b);color:#48312f;box-shadow:0 4px 0 #6c4b42;font:700 23px Display,Arial}.word-tiles button:disabled{opacity:.3;transform:translateY(3px);box-shadow:none}.word-form .text-link{font-size:12px}.word-form input{background:#101726}
#game-fx{position:absolute;inset:100px 0 auto;z-index:3;pointer-events:none;display:flex;justify-content:center}#game-fx span{font:700 16px Display,Arial;color:#fff7d8;background:#172736e8;border:1px solid #ffefbf88;padding:10px 18px;border-radius:24px;box-shadow:0 8px 25px #0003;animation:reward-rise 1.2s forwards}
.plain-mode .game-display:before{display:none}.plain-mode .arcade-sprite{background-image:none!important;filter:none!important;animation:none!important}.plain-mode .arcade-sprite:before{content:attr(data-symbol);display:grid;place-items:center;height:100%;font-size:25px;color:#b8c9dc}.plain-mode .game-board *{animation:none!important;box-shadow:none!important;transition:none!important}.plain-mode .slide-tile{background-image:none!important;background-color:#354353!important}.plain-mode #game-fx,.plain-mode #game-confetti{display:none}.game-is-paused *,.paused .arcade-card *,.paused .arcade-machine *{animation-play-state:paused!important}
@keyframes creature-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}
@keyframes card-reveal{from{transform:rotateY(75deg) scale(.9)}to{transform:rotateY(0) scale(1)}}
@keyframes potion-bubble{to{translate:0 -22px;opacity:0}}
@keyframes reward-rise{0%{opacity:0;translate:0 15px;scale:.85}20%{opacity:1;scale:1}75%{opacity:1}100%{opacity:0;translate:0 -30px}}
@media(max-width:850px){.game-setting{grid-column:1/-1;margin-top:12px;max-width:280px}.game-guide #pace-note{grid-column:1/-1}.world-hud{padding:10px 12px}.game-card-art{height:220px}}
@media(max-width:520px){.game-card-art{height:225px}.game-card-art i.arcade-sprite{width:145px;height:145px}.game-board{padding:20px 10px}.game-snake,.game-breaker{padding:4px}.puzzle-grid{padding:7px;gap:6px}.maze-grid{padding:4px;gap:2px}.world-buddy{width:40px}.world-hud{gap:7px;padding:10px 8px}.world-hud #world-caption{font-size:10px}#delight-toggle{max-width:75px;font-size:9px;padding:7px}.comet-target{width:68px;height:68px}.word-form{padding:13px;gap:14px}.word-tiles button{width:29px;font-size:20px}.game-display{min-height:490px}.sort-tube{padding:15px 4px 8px}.game-overlay{padding:22px 15px}}
@media(prefers-reduced-motion:reduce){.arcade-card *,.arcade-machine *{animation:none!important;transition:none!important}#game-fx{display:none}}

#quick-pause{width:36px;min-height:40px;flex:none;background:#ffffff13;border:1px solid #b6cbe34d;border-radius:10px;font-size:15px}#quick-pause:disabled{opacity:.4}
@media(max-width:850px){.machine-layout>.game-display{order:-1}.game-guide{padding-top:15px;border-top:1px solid #ffffff22}.machine-heading{margin-bottom:18px}.world-hud #delight-toggle{max-width:72px}.game-guide .game-setting:has(select:disabled){display:none}}

.game-snake .arcade-canvas{max-width:440px;max-height:none}.game-breaker~.direction-pad{grid-template-columns:repeat(2,48px)}
@media(max-width:520px){.world-hud{display:grid;grid-template-columns:42px minmax(0,1fr) 34px;gap:5px 8px}.world-buddy{grid-row:1/3}.world-hud>div{grid-column:2;grid-row:1}.world-hud #quick-pause{grid-column:3;grid-row:1/3;width:32px}.world-hud #delight-toggle{grid-column:2;grid-row:2;justify-self:start;max-width:none;min-height:30px;padding:4px 9px}.world-hud #world-caption{font-size:10px}.world-meter{margin-top:5px}}
