/* Project sketches share the current palette, but are selected independently. */
.palette-egg, .palette-egg-icon { pointer-events: none; color: color-mix(in srgb, rgb(var(--glow-line)) 85%, white); }
.palette-egg *, .palette-egg-icon * { color: inherit; }
.palette-toggle.has-egg .palette-swatch { visibility: hidden; }
.palette-egg-icon { position: absolute; inset: 9px; display: grid; place-items: center; animation: egg-icon 3.6s ease both; }
.palette-egg-icon svg { width: 24px; height: 24px; }
.palette-egg-icon svg, .palette-egg svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
.palette-egg-icon rect { fill: var(--space-deep); }
.palette-egg { position: fixed; top: 82px; right: 10px; width: 144px; height: 240px; z-index: 999; transform: scale(var(--egg-scale, 1)); transform-origin: top right; animation: egg-appear 3.6s ease both; }
.palette-egg .egg-art { display: block; width: 144px; height: 208px; overflow: visible; transform-origin: 50% 0; animation: egg-return 3.6s ease-in both; }
.palette-egg.egg-summer, .palette-egg.egg-sweetie { height: 184px; }
.palette-egg.egg-summer .egg-art, .palette-egg.egg-sweetie .egg-art { height: 152px; }
.palette-egg .egg-caption { display: block; text-align: center; font: 14px/32px monospace; letter-spacing: .06em; color: #b8bcc6; }
.palette-egg text { fill: currentColor; stroke: none; font: 8px monospace; }
.palette-egg .egg-guide { opacity: .3; }
.palette-egg .egg-computer, .palette-egg .egg-robot { animation: egg-reveal 0.375s ease both; }
.palette-egg .egg-code { stroke-dasharray: 60; animation: egg-connect 0.9s 0.375s ease both; }
.palette-egg .egg-teacher, .palette-egg .egg-desk { animation: egg-reveal 0.45s 0.375s ease both; }
.palette-egg .egg-teaching-arm { transform-origin: 20px 53px; animation: egg-teach 2.25s 0.6s ease both; }
.palette-egg .egg-trace { stroke-dasharray: 100; animation: egg-connect 1.05s ease both; }
.palette-egg .egg-trace-two { animation-delay: 0.375s; }
.palette-egg .egg-trace-three { animation-delay: 0.75s; }
.palette-egg .egg-lens { animation: egg-examine 2.7s 0.225s ease both; }
.palette-egg .egg-lens circle { fill: rgb(var(--glow-line) / .08); }
.palette-egg .egg-command { overflow: hidden; animation: egg-type 0.9s 0.15s steps(10, end) both; }
.palette-egg .egg-response { animation: egg-reveal 0.18s 1.2s steps(1, end) both; }
.palette-egg .egg-cursor { animation: egg-reveal 0.15s 1.05s steps(1, end) both; }
.palette-egg .egg-network { stroke-dasharray: 100; animation: egg-connect 0.525s 1.5s ease both; }
.palette-egg .egg-server { animation: egg-server-open 0.375s 1.875s ease both; }
.palette-egg .egg-server-two { animation-delay: 2.1s; }
.palette-egg .egg-server-three { animation-delay: 2.325s; }
.palette-toggle.egg-expanded .palette-egg-icon { animation: egg-icon-return 3.6s ease both; }
.palette-toggle.egg-expanded .palette-swatch { visibility: visible; animation: egg-swatch-return 3.6s steps(1, end) both; }
@keyframes egg-appear { 0% { opacity: 0; } 8%, 80% { opacity: 1; } 100% { opacity: 0; } }
@keyframes egg-return { 0%, 76% { transform: none; } 100% { transform: translate(42px, -44px) scale(.12); } }
@keyframes egg-icon { 0% { opacity: 0; transform: scale(.8); } 12%, 88% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes egg-icon-return { 0%, 78% { opacity: 0; } 90%, 100% { opacity: 1; } }
@keyframes egg-swatch-return { 0%, 85% { opacity: 1; } 86%, 100% { opacity: 0; } }
@keyframes egg-reveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes egg-connect { from { stroke-dashoffset: 100; opacity: 0; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes egg-type { from { width: 0; } to { width: 57px; } }
@keyframes egg-server-open { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
@keyframes egg-teach { 0%, 100% { transform: rotate(0); } 40%, 65% { transform: rotate(-12deg); } }
@keyframes egg-examine { 0%, 100% { transform: translateY(0); } 45%, 70% { transform: translateY(8px); } }
@media (max-width: 1199px) { .palette-egg { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .palette-egg { display: none; }
  .palette-egg-icon { animation: none !important; }
}

/* AAArena homepage miniatures: blue / gold denote opposing game agents. */
.palette-egg.egg-snake, .palette-egg.egg-pacman, .palette-egg.egg-antwar, .palette-egg.egg-dorado { height: 176px; }
.palette-egg.egg-snake .egg-art, .palette-egg.egg-pacman .egg-art, .palette-egg.egg-antwar .egg-art, .palette-egg.egg-dorado .egg-art { height: 144px; }
.palette-egg .egg-team-blue, .palette-egg-icon .egg-team-blue { color: #6593ff; }
.palette-egg .egg-team-gold, .palette-egg-icon .egg-team-gold { color: #f1bf61; }
.palette-egg .egg-board { fill: var(--space-deep); stroke: currentColor; stroke-opacity: .25; }
.palette-egg .egg-grid { stroke-width: .4; opacity: .2; }
.palette-egg .egg-territory, .palette-egg .egg-claim { fill: currentColor; fill-opacity: .28; stroke: none; }
.palette-egg .egg-claim { animation: egg-reveal .5s 1.8s both; }
.palette-egg .egg-snake-trail { stroke-width: 3.7; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 28 100; animation: egg-snake-travel 2.7s linear both; }
.palette-egg .egg-snack, .palette-egg .egg-power { fill: #f1bf61; stroke: none; }
.palette-egg .egg-maze { fill: rgb(var(--glow-line) / .13); stroke: rgb(var(--glow-line) / .5); stroke-width: .7; }
.palette-egg .egg-pellets, .palette-egg-icon .egg-pellets { stroke: #d5d8df; stroke-width: 1.2; stroke-linecap: round; stroke-dasharray: .2 4; }
.palette-egg .egg-solid, .palette-egg-icon .egg-solid { fill: currentColor; stroke: none; }
.palette-egg .egg-pacman-player { animation: egg-pacman-run 2.7s linear both; }
.palette-egg .egg-pacman-rival { animation: egg-pacman-chase 2.7s linear both; }
.palette-egg .egg-ghost { fill: #d5d8df; stroke: none; animation: egg-ghost-run 2.7s linear both; }
.palette-egg .egg-eyes { stroke: var(--space-deep); stroke-width: 1; }
.palette-egg .egg-hex { fill: rgb(var(--glow-line) / .08); stroke: rgb(var(--glow-line) / .3); stroke-width: .4; }
.palette-egg .egg-base, .palette-egg-icon .egg-base { fill: var(--space-deep); stroke-width: 1.5; }
.palette-egg .egg-tower { fill: currentColor; stroke-width: 1; }
.palette-egg .egg-ant { fill: currentColor; stroke-width: .6; }
.palette-egg .egg-ant-blue { animation: egg-ant-advance 2.7s linear both; }
.palette-egg .egg-ant-gold { animation: egg-ant-counter 2.7s linear both; }
.palette-egg .egg-ant-scout { animation: egg-ant-scout 2.7s linear both; }
.palette-egg .egg-shot { stroke-width: .7; stroke-dasharray: 2 4; animation: egg-fire 2.7s linear both; }
.palette-egg .egg-shot.egg-team-gold { animation-delay: .2s; }
.palette-egg .egg-island { fill: rgb(var(--glow-line) / .15); stroke: rgb(var(--glow-line) / .25); stroke-width: 1; }
.palette-egg .egg-river { stroke: var(--space-deep); stroke-width: 7; stroke-linejoin: round; }
.palette-egg .egg-squad { fill: currentColor; stroke-width: .7; }
.palette-egg .egg-squad-blue { animation: egg-squad-advance 2.7s linear both; }
.palette-egg .egg-squad-gold { animation: egg-squad-counter 2.7s linear both; }
.palette-egg .egg-unit-bar { fill: none; stroke-width: .7; }
@keyframes egg-snake-travel { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -58; } }
@keyframes egg-pacman-run { 0% { transform: translate(8px, 32px); } 45% { transform: translate(35px, 32px); } 80% { transform: translate(35px, 52px); } 100% { transform: translate(24px, 52px); } }
@keyframes egg-pacman-chase { 0% { transform: translate(64px, 34px); } 45% { transform: translate(48px, 34px); } 65% { transform: translate(48px, 52px); } 100% { transform: translate(60px, 52px); } }
@keyframes egg-ghost-run { 0% { transform: translate(35px, 10px); } 50% { transform: translate(35px, 35px); } 100% { transform: translate(16px, 35px); } }
@keyframes egg-ant-advance { 0% { transform: translate(15px, 35px); } 45% { transform: translate(30px, 35px); } 70% { transform: translate(37px, 29px); } 100% { transform: translate(49px, 35px); } }
@keyframes egg-ant-counter { 0% { transform: translate(57px, 35px) rotate(180deg); } 50% { transform: translate(40px, 41px) rotate(180deg); } 100% { transform: translate(23px, 41px) rotate(180deg); } }
@keyframes egg-ant-scout { 0% { transform: translate(17px, 41px); } 50% { transform: translate(28px, 48px); } 100% { transform: translate(43px, 48px); } }
@keyframes egg-fire { 0%, 25%, 48%, 75%, 100% { opacity: 0; } 32%, 42%, 62%, 70% { opacity: .8; } }
@keyframes egg-squad-advance { 0% { transform: translate(20px, 20px); } 50% { transform: translate(25px, 28px); } 100% { transform: translate(32px, 34px); } }
@keyframes egg-squad-counter { 0% { transform: translate(53px, 51px); } 50% { transform: translate(47px, 44px); } 100% { transform: translate(40px, 38px); } }
