/* Generated by tools/particle_page.py - do not edit.
 * One row per particle in assets/particles.png, frames left to right.
 * Frame counts come from the game's own particle definitions. */

.pgrid{display:grid;gap:.75rem;
 grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));}
.pcard{border:1px solid var(--rule,#3a3a3a);border-radius:2px;
 padding:.6rem;display:flex;flex-direction:column;gap:.4rem;
 align-items:center;text-align:center;}
.pcard.is-hidden{display:none;}
.pstage{width:64px;height:64px;display:grid;place-items:center;
 background:repeating-conic-gradient(var(--elev2,#2a2a2a) 0% 25%,
 transparent 0% 50%) 50%/12px 12px;border-radius:2px;}
.pt{width:32px;height:32px;image-rendering:pixelated;
 background-image:url('particles.png');background-repeat:no-repeat;
 transform:scale(2);transform-origin:center;
 background-position:0 calc(var(--row) * -32px);
 animation:pt-play calc(var(--frames) * .12s)
 steps(var(--frames)) infinite;}
.pt[data-frames='1']{animation:none;}
@keyframes pt-play{from{background-position-x:0}
 to{background-position-x:calc(var(--frames) * -32px)}}
.pgrid.is-paused .pt{animation-play-state:paused;}
.pname{font-family:var(--mono,monospace);font-size:.78rem;
 word-break:break-all;}
.pmeta{font-size:.7rem;opacity:.75;}
.pcopy{font:inherit;font-size:.7rem;cursor:pointer;
 background:var(--elev,#222);color:inherit;
 border:1px solid var(--rule,#3a3a3a);border-radius:2px;
 padding:.15rem .45rem;}
.pcopy:focus-visible{outline:2px solid var(--accent,#8fc79a);}
@media (prefers-reduced-motion:reduce){
 .pt{animation:none !important;}}

.p-ambient_entity_effect{--row:0;--frames:8;}
.p-angry_villager{--row:1;--frames:1;}
.p-ash{--row:2;--frames:1;}
.p-bubble{--row:3;--frames:1;}
.p-bubble_column_up{--row:4;--frames:1;}
.p-bubble_pop{--row:5;--frames:5;}
.p-campfire_cosy_smoke{--row:6;--frames:12;}
.p-campfire_signal_smoke{--row:7;--frames:12;}
.p-cherry_leaves{--row:8;--frames:12;}
.p-cloud{--row:9;--frames:8;}
.p-composter{--row:10;--frames:1;}
.p-copper_fire_flame{--row:11;--frames:1;}
.p-crimson_spore{--row:12;--frames:1;}
.p-crit{--row:13;--frames:1;}
.p-current_down{--row:14;--frames:1;}
.p-damage_indicator{--row:15;--frames:1;}
.p-dolphin{--row:16;--frames:1;}
.p-dragon_breath{--row:17;--frames:3;}
.p-dripping_dripstone_lava{--row:18;--frames:1;}
.p-dripping_dripstone_water{--row:19;--frames:1;}
.p-dripping_honey{--row:20;--frames:1;}
.p-dripping_lava{--row:21;--frames:1;}
.p-dripping_obsidian_tear{--row:22;--frames:1;}
.p-dripping_water{--row:23;--frames:1;}
.p-dust{--row:24;--frames:8;}
.p-dust_color_transition{--row:25;--frames:8;}
.p-dust_plume{--row:26;--frames:8;}
.p-effect{--row:27;--frames:8;}
.p-egg_crack{--row:28;--frames:1;}
.p-electric_spark{--row:29;--frames:1;}
.p-enchant{--row:30;--frames:26;}
.p-enchanted_hit{--row:31;--frames:1;}
.p-end_rod{--row:32;--frames:8;}
.p-entity_effect{--row:33;--frames:8;}
.p-explosion{--row:34;--frames:16;}
.p-falling_dripstone_lava{--row:35;--frames:1;}
.p-falling_dripstone_water{--row:36;--frames:1;}
.p-falling_dust{--row:37;--frames:8;}
.p-falling_honey{--row:38;--frames:1;}
.p-falling_lava{--row:39;--frames:1;}
.p-falling_nectar{--row:40;--frames:1;}
.p-falling_obsidian_tear{--row:41;--frames:1;}
.p-falling_spore_blossom{--row:42;--frames:1;}
.p-falling_water{--row:43;--frames:1;}
.p-firefly{--row:44;--frames:1;}
.p-firework{--row:45;--frames:8;}
.p-fishing{--row:46;--frames:4;}
.p-flame{--row:47;--frames:1;}
.p-flash{--row:48;--frames:1;}
.p-geyser_base{--row:49;--frames:8;}
.p-geyser_plume{--row:50;--frames:8;}
.p-geyser_poof{--row:51;--frames:8;}
.p-glow{--row:52;--frames:1;}
.p-glow_squid_ink{--row:53;--frames:8;}
.p-gust{--row:54;--frames:12;}
.p-happy_villager{--row:55;--frames:1;}
.p-heart{--row:56;--frames:1;}
.p-infested{--row:57;--frames:1;}
.p-instant_effect{--row:58;--frames:8;}
.p-landing_honey{--row:59;--frames:1;}
.p-landing_lava{--row:60;--frames:1;}
.p-landing_obsidian_tear{--row:61;--frames:1;}
.p-large_smoke{--row:62;--frames:8;}
.p-lava{--row:63;--frames:1;}
.p-mycelium{--row:64;--frames:1;}
.p-nautilus{--row:65;--frames:1;}
.p-note{--row:66;--frames:1;}
.p-noxious_gas{--row:67;--frames:8;}
.p-ominous_spawning{--row:68;--frames:1;}
.p-orange_poplar_leaves{--row:69;--frames:4;}
.p-pale_oak_leaves{--row:70;--frames:12;}
.p-pause_mob_growth{--row:71;--frames:1;}
.p-poof{--row:72;--frames:8;}
.p-portal{--row:73;--frames:8;}
.p-raid_omen{--row:74;--frames:1;}
.p-rain{--row:75;--frames:4;}
.p-red_poplar_leaves{--row:76;--frames:4;}
.p-reset_mob_growth{--row:77;--frames:1;}
.p-reverse_portal{--row:78;--frames:8;}
.p-scrape{--row:79;--frames:1;}
.p-sculk_charge{--row:80;--frames:7;}
.p-sculk_charge_pop{--row:81;--frames:4;}
.p-sculk_soul{--row:82;--frames:11;}
.p-shriek{--row:83;--frames:1;}
.p-small_flame{--row:84;--frames:1;}
.p-small_gust{--row:85;--frames:7;}
.p-smoke{--row:86;--frames:8;}
.p-sneeze{--row:87;--frames:8;}
.p-snowflake{--row:88;--frames:8;}
.p-sonic_boom{--row:89;--frames:16;}
.p-soul{--row:90;--frames:11;}
.p-soul_fire_flame{--row:91;--frames:1;}
.p-spit{--row:92;--frames:8;}
.p-splash{--row:93;--frames:4;}
.p-spore_blossom_air{--row:94;--frames:1;}
.p-squid_ink{--row:95;--frames:8;}
.p-sulfur_bubbles{--row:96;--frames:1;}
.p-sulfur_cube_goo{--row:97;--frames:1;}
.p-sweep_attack{--row:98;--frames:8;}
.p-tinted_leaves{--row:99;--frames:12;}
.p-totem_of_undying{--row:100;--frames:8;}
.p-trail{--row:101;--frames:1;}
.p-trial_omen{--row:102;--frames:1;}
.p-trial_spawner_detection{--row:103;--frames:5;}
.p-trial_spawner_detection_ominous{--row:104;--frames:5;}
.p-underwater{--row:105;--frames:1;}
.p-vault_connection{--row:106;--frames:1;}
.p-vibration{--row:107;--frames:7;}
.p-warped_spore{--row:108;--frames:1;}
.p-wax_off{--row:109;--frames:1;}
.p-wax_on{--row:110;--frames:1;}
.p-white_ash{--row:111;--frames:1;}
.p-white_smoke{--row:112;--frames:8;}
.p-witch{--row:113;--frames:8;}
.p-yellow_poplar_leaves{--row:114;--frames:4;}
